对于网页乱码的处理办法

页面乱码的本质:

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


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


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

参考网址: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方法进行设置。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值