作者:赢在青春创业团队 | 来源:互联网 | 2021-11-16 21:37
java中乱码的解决办法:首先在每个页面的开始处加入代码“<%@pagelanguage"java"charsetUTF-8">”;然后复制“TOMCAT”安装目录到“webappfilters”下即可。
java中乱码的解决办法
对于Java,由于默认的编码方式是UNICODE,所以用中文也易出问题,常见的解决是:
String s2 = new String(s1.getBytes(“ISO-8859-1”),”GBK”);
1、utf8解决JSP中文乱码问题
推荐教程:《java学习》
一般说来在每个页面的开始处,加入:
<%@ page language="java" cOntentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page language="java" cOntentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<% request.setCharacterEncoding("UTF-8"); %>
◆charset=UTF-8的作用是指定JSP向客户端输出的编码方式为“UTF-8”;
◆pageEncoding="UTF-8",为了让JSP引擎能正确地解码含有中文字符的JSP页面,这在LINUX中很有效;
◆request.setCharacterEncoding("UTF-8");是对请求进行了中文编码。
有时,这样仍不能解决问题,还需要这样处理一下:
String msg = request.getParameter("message"); String str=new String(msg.getBytes("ISO-8859-1"),"UTF-8"); out.println(st);
2、Tomcat 5.5中文乱码
只要把%TOMCAT安装目录%/ webapps\servlets-examples\WEB-INF\classes\filters\SetCharacterEncodingFilter.class文件拷到你的webapp目录/filters下,如果没有filters目录,就创建一个。
2)在你的web.xml里加入如下几行:
Set Character Encoding
filters.SetCharacterEncodingFilter
encoding
GBK
Set Character Encoding
/*
3)完成
2、get方式的解决办法
1)打开tomcat的server.xml文件,找到区块,加入如下一行:
URIEncoding=”GBK”
完整的应如下:
2)重启tomcat,一切OK。
3、xmlHttpRequest中文问题
页面jsp用的GBK编码
代码:
<%@ page cOntentType="text/html; charset=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.setRequestHeader( " Content-Type " , "
application/x-www-form-urlencoded);
xmlHttp.send(urlmsg);
}
#p#
后台java中获得的reportId是乱码,不知道该怎么转,主要是不知道xmlHttp.send(urlmsg);以后是什么编码?在后面用java来转,试了几种,都没有成功,其中有:
代码:
public static String UTF_8ToGBK(String str) {
try {
return new String(str.getBytes("UTF-8"), "GBK");
} catch (Exception ex) {
return null;
}
}
public static String UTF8ToGBK(String str) {
try {
return new String(str.getBytes("UTF-16BE"), "GBK");
} catch (Exception ex) {
return null;
}
}
public static String GBK(String str) {
try {
return new String(str.getBytes("GBK"),"GBK");
} catch (Exception ex) {
return null;
}
}
public static String getStr(String str) {
try {
String temp_p = str;
String temp = new String(temp_p.getBytes("ISO8859_1"), "GBK");
temp = sqlStrchop(temp);
return temp;
} catch (Exception e) {
return null;
}
}
以上就是java中乱码的解决办法的详细内容,更多请关注其它相关文章!