java怎么解决乱码_java中乱码怎么解决

本文介绍了Java中遇到的各种乱码问题及其解决办法,包括JSP页面、Tomcat服务器配置及XMLHttpRequest请求中的中文乱码处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

java中乱码怎么解决

发布时间:2020-04-16 14:33:51

来源:亿速云

阅读:166

作者:小新

java中乱码怎么解决?很多人都不太了解,今天小编为了让大家更加了解java中乱码的解决办法,所以给大家总结了以下内容,一起往下看吧。

2c2d74ba86be72a25f2325aa0c04c8f5.png

java中乱码的解决办法

对于Java,由于默认的编码方式是UNICODE,所以用中文也易出问题,常见的解决是:String s2 = new String(s1.getBytes(“ISO-8859-1”),”GBK”);

1、utf8解决JSP中文乱码问题

一般说来在每个页面的开始处,加入:

◆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”

完整的应如下:

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编码

代码:

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中乱码怎么解决的详细内容了,看完之后是否有所收获呢?如果想了解更多相关内容,欢迎来亿速云行业资讯!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值