频道栏目
首页 > 程序开发 > web前端 > HTML/CSS > 正文
解决页面中文乱码问题解析
2018-09-03 13:52:28           
收藏   我要投稿
解决页面中文乱码问题 -->
中文乱码的原因 以不合适的编码集解码,如文件保存的格式为UTF-8解码时使用BGK。 以不支持中文的编码集进行编码,如IOS-8859-1

JSP文件响应到浏览器的过程

\

乱码通常会在jsp引擎预处理阶段和html文件响应到浏览器阶段发生。

Jsp引擎预处理分为两个步骤:

检查jsp文件<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>指令对文件进行解码,解码字符集优先级:pageEncoding > contentType > default 将.jsp文件解析成UTF-8格式的.java文件

html文件响应到浏览器

HTML文档是作为带有字符编码信息的字节流序列在互联网中传送的。字符编码信息可以在随文档发送的HTTP响应头信息中指定(通过web服务器的配置来指定编码参数,为所有text/html类型的文档指定带有正确编码信息的Content-Type头信息。例如Content-Type: text/html;charset=UTF-8),也可以在文档的 HTML标签中指定(在HTML代码中包含http-equiv="content-type"的meta标签)。如果不知道如何构造一个页面的字符,浏览器自然也不能正确地渲染页面。绝大部分浏览器在开始执行任何JavaScript代码或者绘制页面之前都要缓冲一定数量的字节流(通常为1024字节),缓冲的同时它们也要查找相关的字符编码设定。不同浏览器需要缓冲的字节流数量不同,在缓冲的字节流内如果找不到编码设定,浏览器会以默认的编码对页面开始渲染。如果在开始渲染页面之后才发现指定的编码设定与其默认值不同,都会导致重新解析文档并重绘页面。如果html文件引入了外部资源(例如css\js\media),浏览器会重新对资源进行请求。浏览器对编码参数选择的优先级:contentType > pageEncoding

>meta > default。contentType和pageEncoding会改变HTTP响应头信息。

各个浏览器默认编码:

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

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

Opera默认编码:gbk

3.通过URL向服务器传递参数时没有方法可以设置它的编码,服务器默认使用ISO-8859-1的格式编码,可以通过在tomcat的server.xml中,设置元素的属性URIEncoding="UTF-8”(默认没有设置此属性),指定URI使用“UTF-8”编码方式。获取URL的中文参数需要使用

String name =request.getParameter(“name”);

name = newString(name.getBytes(“iso-8859-1”), “utf-8”);

进行转码。

点击复制链接 与好友分享!回本站首页
上一篇:去除json数组中空数组教程
下一篇:Hspice2008安装步骤教程
相关文章
图文推荐
点击排行

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站