" at the beginning of each page; then copy the "TOMCAT" installation directory to "webapp/filters" That’s it."/> " at the beginning of each page; then copy the "TOMCAT" installation directory to "webapp/filters" That’s it.">

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

Solution to garbled characters in java

藏色散人
藏色散人Original
2020-04-11 09:20:472946browse

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”);

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"); %>

◆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);

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>

3) Complete

2, get method solution

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

  URIEncoding=”GBK”

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"   
  />

2) Restart tomcat, everything is OK.

3. xmlHttpRequest Chinese problem

GBK encoding used for page jsp

code:

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

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#

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;   
        }   
    }

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!

Statement:
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