我正在做一个测试,Firefox编码字符如何。
但事实让我困惑。
HTML code:
<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是一些汉字。必须将这些字符编码为%xx格式才能通过HTTP传输。
首先,我在UTF-8中编码源文件。使用firefox打开html文件。 img标签将发送请求,“xxx”字符由UTF8编码。
我把元变成了
<meta http-equiv="Content-Type" content="text/html; charset=gbk">
但没有改变。
其次,我将源文件保存为ANSI ,可能是GBK或GB2312。
当charset = gbk时,仍然按UTF8编码字符。
但是,当charset = utf8时,字符由GBK编码。顺便说一下,其他汉字不能以正确的方式显示,例如标题中的字符串。
如何控制浏览器的编码行为?
答案 0 :(得分:2)
用于URL编码的UTF-8是the standard。如果您使用GBK对源文件进行物理编码,但在内容类型中使用utf-8
,那么您只是对浏览器撒谎并且会得到不一致或不可用的结果。
当新的URI方案定义表示文本数据的组件时 由通用字符集[UCS]中的字符组成 首先应根据UTF-8将数据编码为八位字节 字符编码[STD63];然后只有那些没有的八位字节 对应于未保留集中的字符应为百分比 - 编码。例如,字符A将表示为“A”, 将代表拉丁文大写字母A WITH GRAVE 作为“%C3%80”,将代表角色KATAKANA LETTER A. 为“%E3%82%A2