乱码的处理!程序员永远无法避免的话题
为什么说乱码是中国程序员无法避免的话题呢?这个首先要从编码机制上说起,大家都是中文和英文的编码格式不是一样,解码也是不一样的!如果中国的程序员不会遇到乱码,那么只有使用汉语编程。汉语编程是怎么回事我也不大清楚,应该是前年吧,我一朋友给我介绍汉语编程,怎么不错不错?当时因为学习忙没去关注这个,等我闲了,那个朋友不弄这个,问他他也不说不大清楚,最后自己对这个学习也不了了之了。
今天我写这个不是讲解中英文之间的差距,解码等,我是将我在这几年工作遇到各种各样的乱码的解决方法,总结一样,也希望大家能把自己晕倒解决乱码的方法都说出来,咱们弄一个解决乱码的“葵花宝典”。
对于Java由于默认的编码方式是UNICODE,所以用中文也易出问题,常见的解决是
Strings2=newString(s1.getBytes(“ISO-8859-1”),”GBK”);
1、utf8解决JSP中文乱码问题
一般说来在每个页面的开始处,加入:
以下是引用片段:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
request.setCharacterEncoding("UTF-8");
%>
<%
request.setCharacterEncoding("UTF-8");
%>
charset=UTF-8的作用是指定JSP向客户端输出的编码方式为“UTF-8”
pageEncoding="UTF-8"为了让JSP引擎能正确地解码含有中文字符的JSP页面,这在Linux中很有效
request.setCharacterEncoding("UTF-8");是对请求进行了中文编码
有时,这样仍不能解决问题,还需要这样处理一下:
Stringmsg=request.getParameter("message");
Stringstr=newString(msg.getBytes("ISO-8859-1"),"UTF-8");
out.println(st);
2、Tomcat5.5中文乱码
1)只要把%TOMCAT安装目录%/Webapps\Servlets-examples\WEB-INF\classes\filters\SetCharacterEncodingFilter.class文件拷到你的webapp目录/filters下,如果没有filters目录,就创建一个。
2)在你的web.XML里加入如下几行:
<filter>
<filter-name>Set Character Encoding</filter-name>
<filter-class>filters.SetCharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>GBK</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>Set Character Encoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping> 3)完成.
2get方式的解决办法
1)打开tomcat的server.xml文件,找到区块,加入如下一行:
URIEncoding=”GBK”
完整的应如下:
以下是引用片段: 3、xmlHttpRequest中文问题 页面jsp用的GBK编码 以下是引用片段:
<Connector
port="80" maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
debug="0" connectionTimeout="20000"
disableUploadTimeout="true"
URIEncoding="GBK"
/>
代码
<%@ page contentType="text/html; charset=GBK"%>
JavaScript部分
代码
function addFracasReport() {
var url="controler?actionId=0_06_03_01&actionFlag=0010";