What behavior is browser url encoded?
I am doing the test as a Firefox encoding character.
But the fact confused me.
<html lang="zh_CN"> <head> <title>some Chinese character</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> </head> <body> <img src="http://localhost/xxx" /> </body>
XXX are some Chinese characters. This character must be formatted as% xx for HTTP transport.
First, I am encoding the original file in UTF-8. use firefox to open html file. The img tag will send a request, the "xxx" character has been UTF8 encoded.
- (encode original HTML file UTF8, charset = utf8, browser UTF encoding url)
I changed the meta in
<meta http-equiv="Content-Type" content="text/html; charset=gbk">
but nothing has changed.
- (encode original HTML file UTF8, charset = gbk, browser UTF encoding url)
Secondly, I keep the original file in ANSI , maybe GBK or GB2312.
when charset = gbk, still encoding UTF8 character.
- (encode original HTML file by GBK, charset = gbk, browser UTF encoding url)
BUT when charset = utf8 the characters are GBK encoded. By the way, another Chinese character cannot be displayed correctly, eg. Title line.
- (encode original HTML file with GBK, charset = utf8, GBK browser encoding url)
How to control browser behavior?
source to share
UTF-8 is the standard for URL encoding. If you physically encode the original file in GBK, but use it
in the content type, you are simply lying to the browser and you will get inconsistent or not working results.
When the new URI scheme defines a component representing textual data composed of universal character set [UCS] characters, the data must first be encoded as octets according to the UTF-8 character encoding [STD63]; then only those octets that do not correspond to characters in the unreserved set are encoded. For example, character A would be represented as "A", LATIN CAPITAL CHARACTER OF LETTER A WITH GRAVE would be represented as "% C3% 80", and character KATAKANA LETTER A would be represented as "% E3% 82% A2
source to share