您的位置:首页 > 其它

对于网页乱码的处理办法

2016-07-11 11:22 204 查看
页面乱码的本质:

浏览器对于文件的解析使用的编码方式和文件本身的编码方式不匹配。

知道了这个本质,对于乱码问题的解决就变得简单多了。不产生乱码的本质就是要求浏览器对于文件的解析使用的编码方式和文件本身的编码方式保持一致。

那么 浏览器是根据什么来判断使用哪种编码方式的呢?

参考网址:http://blog.csdn.net/generalyy0/article/details/8239782

1.如何确定页面(文档)的编码?

 用户代码必须遵守 优先级由高至低顺序。优先级顺序如下:

(1)HTTP "Content-Type" 字段中的 "charset" 参数。  

(2)META 声明中 "http-equiv" 为 "Content-Type" 对应的值中的 "charset" 的值。

(3)元素的 charset 属性。

如果没有设置编码类型,则使用各个浏览器默认编码。

IE6、IE7、IE8、Firefox 默认字符编码:gb2312;

Chrome、Safari 默认字符编码:ISO-8859-1;

Opera默认编码:gbk

也就是说影响浏览器使用编码方式的包括 http resonpse header中的content-type、meta中content-type和元素的charset属性,编写程序和页面时一定要把这些都设置好才可以。另外还有一种情况是http resonpse header中的content-language,这个也会浏览器的解析,这个值可以通过在java中使用response.setLocal来进行设置。

这些设置好后,一定要检查文件本身的编码是否和以上保持了一致。

2. 关于浏览器请求时的accept字段

参考网址:http://www.cnblogs.com/sunxucool/p/4180375.html

当服务器端没有对资源进行特别的编码设置时,服务器会根据请求端可接受的内容,对于同一URL生成不同的版本进行返回。

请求头字段说明响应头字段
Accept告知服务器发送何种媒体类型Content-Type
Accept-Language告知服务器发送何种语言Content-Language
Accept-Charset告知服务器发送何种字符集Content-Type
Accept-Encoding告知服务器采用何种压缩方式Content-Encoding
对于这个的测试可以使用英文版的浏览器进行中文网页的测试。解决办法就是设置资源的content-type和content-language。可使用response.setContentType方法和response.setLocal方法进行设置。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: