• 技术文章 >Java >Java基础

    java中乱码的解决办法

    藏色散人藏色散人2020-04-11 09:20:47原创1908

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

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:java
    上一篇:java base64 乱码怎么办 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • java文件不能删除文件怎么办• java图片显示不出来怎么办• 2020全新Java面试题——容器(一)• 如何用java记事本
    1/1

    PHP中文网