对于网页乱码的处理办法
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生成不同的版本进行返回。
对于这个的测试可以使用英文版的浏览器进行中文网页的测试。解决办法就是设置资源的content-type和content-language。可使用response.setContentType方法和response.setLocal方法进行设置。
浏览器对于文件的解析使用的编码方式和文件本身的编码方式不匹配。
知道了这个本质,对于乱码问题的解决就变得简单多了。不产生乱码的本质就是要求浏览器对于文件的解析使用的编码方式和文件本身的编码方式保持一致。
那么 浏览器是根据什么来判断使用哪种编码方式的呢?
参考网址: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 |
相关文章推荐
- OCM成长之旅
- 规定区域的JS拖动展示效果
- 很有意思的图片分裂复制效果
- ORACLE恢复一个数据表的方法
- navicat for mysql 注册码
- Java 实现Serializable接口要声明serialVersionUID的原因
- Game Prediction(贪心)
- 部署terracotta集群存储tomcat的session
- POJ 1151 Atlantis
- 当ListView有Header时 onItemClick里的position不正确的原因
- 深入理解StrongReference,SoftReference, WeakReference和PhantomReference
- 浮动的图片广告
- 根据鼠标放上切换内容制作的图片导航
- 解决VS调试提示“无法启动程序,'...exe'.系统找不到指定文件。”的问题
- 程序中减少使用if语句的方法集锦
- find特殊参数
- textfield 登录页面Number&Password的同时判定
- use delegate to update UI
- WPF4.5 Introduction to the 24, "DataGrid Control Part 2"
- Yogurt factory(贪心)