Java의 문자 깨짐 해결 방법
Java의 경우 기본 인코딩 방법이 UNICODE이므로 중국어를 사용할 때 문제가 발생하기 쉽습니다. 일반적인 해결 방법은 다음과 같습니다.
String s2 = new String(s1.getBytes(“ISO-8859-1”),”GBK”);
1. 중국어 이상한 문자 Question
추천 튜토리얼: "java learning"
일반적으로 각 페이지의 시작 부분에 다음을 추가합니다.
<%@ 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 출력의 인코딩 방법을 지정하는 데 사용됩니다. 클라이언트를 "
◆pageEncoding="UTF-8"로 지정하면 JSP 엔진이 중국어 문자가 포함된 JSP 페이지를 올바르게 디코딩할 수 있습니다. 이는 LINUX에서 매우 효과적입니다. 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 설치 디렉터리%/ webappsservlets-examplesWEB-INFclassesfiltersSetCharacterEncodingFilter.class를 복사하세요. webapp 디렉토리에 파일을 저장하세요. 필터 아래에 필터 디렉토리가 없으면 필터 디렉토리를 만드세요.
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. 메소드 가져오기 솔루션
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을 다시 시작하면 모든 것이 정상입니다.
3.xmlHttpRequest 중국어 문제
페이지 jsp에 사용되는 GBK 인코딩
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#
백그라운드 Java에서 얻은 보고서 ID가 깨져서 변환하는 방법을 모르겠습니다. , 주로 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!