积极答复者
想不通的编码问题.

问题
-
来这里提问之前,我已经查了很多资料,并且进行了思考.结果实在想不通,故请各位指点!
1.首先我想知道 web.config中的编码, 网页html中的charset, 用户浏览器上设置的页面编码, 这几个的作用和联系.望指教!
2.一个textbox控件, 在web.config中设置编码为GB2312,没有问题. 设置为ISO-8859-1, 回发后textbox中的内容被自动编码,如:输入"测试",回发后输入库内容自动变为:"测试".
这里是我百思不得其解的地方. ISO,GB,UTF这三种编码, 在低7位都是用来表示英文和数字的127个字符.这部分编码是兼容的.
但是ISO不支持中文.GB和UTF支持.既然ISO不支持中文,那么在ISO编码的页面,是否可以输入中文显示中文呢?为什么会给我自动的编码?
另外请教一个额外外问题.&这个是HTML转义符,但是测这种东西是什么表示形式? 这种问题如何去google搜索?这是一个个人问题,希望前辈们赐教.不胜感谢!
答案
-
1.web.config控制的是HTTP流输出的编码。
2.HTML里面的charset说明的是本文件的编码。
3.因为ASP.NET的HTML不是从本地文件读取的,而是从HTTP流获得的,所以HTML的charset理应描述HTTP流的编码。
4.HTML的charset只是一个声明,浏览器不是100%就根据这个声明去选择显示时的编码。
总结:如果charset和web.config的编码设置一致,浏览器很有可能以正确的编码显示,当然少数情况下浏览器自作聪明用别的编码的除外。同理,如果charset和web.config的编码设置不一致,浏览器很有可能不能正常显示,但是少数情况下浏览器智能感知到正确的编码,也是会有的。
例如IE在见到title内包含中文,就会选择GB2312,就算之后你声明了charset也没用。为此,如果你的页面是UTF-8并且使用中文title的,记得把charset声明放在title之前,否则声明了也没用。
&#****;是转义符,类似<和>等效于<和>一样。这个转义符代表的是后面数字对应的Unicode字符,测就是编码为27979的Unicode字符。
全部回复
-
1.web.config控制的是HTTP流输出的编码。
2.HTML里面的charset说明的是本文件的编码。
3.因为ASP.NET的HTML不是从本地文件读取的,而是从HTTP流获得的,所以HTML的charset理应描述HTTP流的编码。
4.HTML的charset只是一个声明,浏览器不是100%就根据这个声明去选择显示时的编码。
总结:如果charset和web.config的编码设置一致,浏览器很有可能以正确的编码显示,当然少数情况下浏览器自作聪明用别的编码的除外。同理,如果charset和web.config的编码设置不一致,浏览器很有可能不能正常显示,但是少数情况下浏览器智能感知到正确的编码,也是会有的。
例如IE在见到title内包含中文,就会选择GB2312,就算之后你声明了charset也没用。为此,如果你的页面是UTF-8并且使用中文title的,记得把charset声明放在title之前,否则声明了也没用。
&#****;是转义符,类似<和>等效于<和>一样。这个转义符代表的是后面数字对应的Unicode字符,测就是编码为27979的Unicode字符。