Home > Java > JavaBase > Solution to garbled characters in java

Solution to garbled characters in java

藏色散人
Release: 2020-04-11 09:20:47
Original
2991 people have browsed it

Solution to garbled characters in java

Solution to garbled characters in java

For Java, since the default encoding method is UNICODE, use Chinese It is also easy to cause problems. The common solutions are:

String s2 = new String(s1.getBytes(“ISO-8859-1”),”GBK”);
Copy after login

1. UTF8 solves the JSP Chinese garbled problem

Recommended tutorial: "java learning"

Generally speaking, at the beginning of each page, add:

<%@ 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"); %>
Copy after login

◆charset=UTF-8 is used to specify the encoding method that JSP outputs to the client as "UTF-8";

◆pageEncoding="UTF-8", in order to allow the JSP engine to correctly decode JSP pages containing Chinese characters, which is very effective in LINUX;

◆request.setCharacterEncoding("UTF-8"); The request is encoded in Chinese.

Sometimes, this still cannot solve the problem, and you need to deal with it like this:

String msg = request.getParameter("message");  String str=new String(msg.getBytes("ISO-8859-1"),"UTF-8");  out.println(st);
Copy after login

2. Tomcat 5.5 Chinese garbled code

Just put the %TOMCAT installation directory%/ webapps\servlets -Examples\WEB-INF\classes\filters\SetCharacterEncodingFilter.class file is copied to your webapp directory/filters. If there is no filters directory, create one.

2) Add the following lines to your 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>
Copy after login

3) Complete

2, get method solution

1 ) Open the server.xml file of tomcat, find the block, and add the following line:

  URIEncoding=”GBK”
Copy after login

The complete should be as follows:

<connector     
  port="80"   maxThreads="150"   minSpareThreads="25"   maxSpareThreads="75"   
  enableLookups="false"   redirectPort="8443"   acceptCount="100"   
  debug="0"   connectionTimeout="20000"     
  disableUploadTimeout="true"     
  URIEncoding="GBK"   
  />
Copy after login

2) Restart tomcat, everything is OK.

3. xmlHttpRequest Chinese problem

GBK encoding used for page jsp

code:

<%@ page contentType="text/html; charset=GBK"%>
Copy after login

javascript part

code:

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#
Copy after login

The reportId obtained in the background java is garbled. I don’t know how to transfer it. The main reason is that I don’t know what encoding xmlHttp.send(urlmsg); will be in the future? I used java to transfer it later and tried several methods without success. Among them are:

Code:

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;   
        }   
    }
Copy after login

The above is the detailed content of Solution to garbled characters in java. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template