今天我写这个不是讲解中英文的间差距解码等我是将我在这几年工作遇到各种各样乱码解决思路方法整理总结样也希望大家能把自己晕倒解决乱码思路方法都说出来咱们弄个解决乱码“葵花宝典”
对于Java由于默认编码方式是 UNICODE,所以用中文也易出问题,常见解决是
String s2 = String(s1.getBytes(“ISO-8859-1”),”GBK”);
1、utf8解决JSP中文乱码问题
般说来在每个页面开始处加入:
以下是引用片段:
<%@ page language="java" contentType="text/html; char=UTF-8"
pageEncoding="UTF-8"%>
<%
request.CharacterEncoding("UTF-8");
%>
char=UTF-8 作用是指定JSP向客户端输出编码方式为“UTF-8”
pageEncoding="UTF-8" 为了让JSP引擎能正确地解码含有中文JSP页面这在LINUX中很有效
request.CharacterEncoding("UTF-8"); 是对请求进行了中文编码
有时这样仍不能解决问题还需要这样处理下:
String msg = request.getParameter("message");
String str= String(msg.getBytes("ISO-8859-1"),"UTF-8");
out.prln(st);
2、Tomcat 5.5 中文乱码
1)只要把%TOMCAT安装目录%/ webapps\servlets-examples\WEB-INF\es\filters\SetCharacterEncodingFilter.文件拷到你webapp目录/filters下如果没有filters目录就创建个
2)在你web.xml里加入如下几行:
以下是引用片段:
<filter>
<filter-name>Set Character Encoding</filter-name>
<filter->filters.SetCharacterEncodingFilter</filter->
<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)完成.
2 get方式解决办法
1) 打开tomcatserver.xml文件找到区块加入如下行:
URIEncoding=”GBK”
完整应如下:
以下是引用片段:
<Connector
port="80" maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
debug="0" connectionTimeout="20000"
disableUploadTimeout="true"
URIEncoding="GBK"
/>
2)重启tomcat,切OK
3、xmlHttpRequest中文问题
页面jsp用GBK编码
以下是引用片段:
代码
<%@ page contentType="text/html; char=GBK"%>
javascript部分
代码
function addFracasReport {
var url="controler?actionId=0_06_03_01&actionFlag=0010";
var urlmsg="&reportId="+fracasReport1.textReportId.value; //故障报告表编号
var xmlHttp=Common.createXMLHttpRequest;
xmlHttp.onreadystatechange = Common.getReadyStateHandler(xmlHttp, eval("turnAnalyPage"));
xmlHttp.open("POST",url,true);
xmlHttp.RequestHeader( " Content-Type " , " application/x-www-form-urlencoded);
xmlHttp.send(urlmsg);
}
后台java中获得reportId是乱码不知道该如何转主要是不知道xmlHttp.send(urlmsg);以后是什么编码?在后面用java来转试了几种都没有成功其中有:
以下是引用片段:
代码
public String UTF_8ToGBK(String str) {
try {
String(str.getBytes("UTF-8"), "GBK");
} catch (Exception ex) {
null;
}
}
public String UTF8ToGBK(String str) {
try {
String(str.getBytes("UTF-16BE"), "GBK");
} catch (Exception ex) {
null;
}
}
public String GBK(String str) {
try {
String(str.getBytes("GBK"),"GBK");
} catch (Exception ex) {
null;
}
}
public String getStr(String str) {
try {
String temp_p = str;
String temp = String(temp_p.getBytes("ISO8859_1"), "GBK");
temp = sqlStrchop(temp);
temp;
} catch (Exception e) {
null;
}
}
最新评论