您好,欢迎访问一九零五行业门户网

java中乱码的解决办法

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里加入如下几行:
<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)完成
2、get方式的解决办法
1)打开tomcat的server.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; 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中乱码的解决办法的详细内容。
其它类似信息

推荐信息