" 코드를 추가한 다음 "TOMCAT" 설치 디렉터리를 "webapp/filters"에 복사합니다. 그게 다야."/> " 코드를 추가한 다음 "TOMCAT" 설치 디렉터리를 "webapp/filters"에 복사합니다. 그게 다야.">

>Java >Java베이스 >Java에서 잘못된 문자에 대한 솔루션

Java에서 잘못된 문자에 대한 솔루션

藏色散人
藏色散人원래의
2020-04-11 09:20:472983검색

Java에서 잘못된 문자에 대한 솔루션

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.