乱码问题
HTML出现乱码
主要原因是html编码是gbk,而其中的中文字内容是用utf-8
备注:gbk的范围囊括中文,只是编码方式冲突
解决方法(使用utf-8编码):
<meta charset=utf-8" />
前提:很多情况下(如很多协议传输数据时)都使用ISO 8859-1编码
tomcat
问题: 程序需要发送http请求到服务器,请求的参数中包含了中文字符且其为UTF-8编码。使用的tomcat服务器,但服务器端后台程序中取到的参数的中文是乱码。
原因:如果没有设置URIEncoding, Tomcat默认是按ISO-8859-1进行URL解码,ISO-8859-1并未包括中文字符,这样的话中文字符肯定就不能被正确解析了。
解决方法:
<Connector port="8080" maxThreads="150" minSpareThreads="25" maxSpareThreads="75" enableLookups="false" redirectPort="8443" acceptCount="100" debug="99" connectionTimeout="20000" disableUploadTimeout="true" URIEncoding="UTF-8"/>
接收请求时乱码
解决方法即将请求转为UTF-8编码
post
response.setCharcacterEncoding("utf-8")
get
String name = request.getParameter("name"); name=new String(name.getBytes("ISO-8859-1","utf-8"))