java中乱码的解决办法

互联网 20-4-11

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中乱码的解决办法的详细内容,更多内容请关注技术你好其它相关文章!

来源链接:
免责声明:
1.资讯内容不构成投资建议,投资者应独立决策并自行承担风险
2.本文版权归属原作所有,仅代表作者本人观点,不代表本站的观点或立场
标签: java
上一篇:php获取远程图片并下载保存到本地的方法分析 下一篇:java base64 乱码怎么办

相关资讯