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!