JSP 중국어 난 코드 해결 방법 공유

JSP 페이지 중국어 난호
JSP 페이지 에서 중국어 디 스 플레이 의 난 장 판 은 두 가지 상황 이 있 습 니 다.하 나 는 HTML 의 중국어 난 장 판 이 고 다른 하 나 는 JSP 에서 동적 으로 출력 된 중국어 난 장 판 입 니 다.
JSP 프로그램 먼저 보기:

<%@ page language="java" import="java.util.*" %> 
<html> 
  <head> 
  <title>      </title> 
 
  </head>  
  <body> 
            : 
  <% 
    String str = "  "; 
    out.print(str); 
  %> 
  </body> 
</html> 
위의 JSP 프로그램 은 페이지 에 중국 어 를 몇 마디 표시 하 는 것 처럼 보이 고 제목 도 중국어 입 니 다.실행 후 브 라 우 저 에 그림 과 같이 표시 합 니 다.

JSP 에 페이지 에 표 시 된 인 코딩 이 지정 되 어 있 지 않 기 때 문 입 니 다.인 코딩 을 없 애 는 솔 루 션 은 간단 합 니 다.위의 코드 에서 page 명령 을 다음 과 같이 수정 하면 됩 니 다.

<%@ page language="java" import="java.util.*" contentType="text/html; charset=GB2312" %> 
<html> 
  <head> 
  <title>      </title> 
 
  </head>  
  <body> 
            : 
  <% 
    String str = "  "; 
    out.print(str); 
  %> 
  </body> 
</html> 
다시 실행 하면 인 코딩 이 사라 집 니 다.원 리 는 페이지 에 GB 2312 로 인 코딩 을 지정 하면 페이지 가 이 인 코딩 에 따라 표시 되 고 인 코딩 이 사라 집 니 다.
2.URL 전달 매개 변수
일반적으로 get 방법 으로 양식 을 제출 할 때 전달 하 는 매개 변 수 는 중국어 일 경우 오류 가 발생 할 수 있 습 니 다.
다음은 예제 프로그램 이다.

<%@ page language="java" import="java.util.*" contentType="text/html;charset=gb2312"%> 
<html> 
  <head>  
    <title>URL          </title> 
  </head> 
  <% 
    String param = request.getParameter("param"); 
  %> 
  <body> 
    <a href="URLCharset.jsp?param='  '">       </a><br> 
           :<%=param%> 
  </body> 
</html> 
위의 JSP 프로그램의 기능 은 URL 링크 를 통 해 자신 에 게 매개 변 수 를 전달 하 는 것 입 니 다.이 매개 변 수 는 중국어 문자열 입 니 다.이 프로그램의 실행 효 과 는 다음 그림 과 같 습 니 다.

URL 이 중국어 파 라 메 터 를 전달 하 는 데 있어 서 처리 방법 이 특수 합 니 다.이 중국어 문자열 을 바 꾸 거나 JSP 페이지 디 스 플레이 인 코딩 을 설정 하 는 것 만 으로 는 문 제 를 해결 할 수 없습니다.Tomcat 서버 의 프로필 을 수정 해 야 문 제 를 해결 할 수 있 습 니 다.Tomcat 의 conf 디 렉 터 리 에 있 는 server.xml 프로필 을 수정 합 니 다.구체 적 으로 변 경 된 코드 는 다음 과 같 습 니 다.

<Connector port="8080" protocol="HTTP/1.1" URIEncoding="gb2312" 
        connectionTimeout="20000"  
        redirectPort="8443" /> 
원래 코드 에 URI 인 코딩 설정 URIEncoding="gb 2312"를 추가 하면 Tomcat 서버 를 다시 시작 하면 올 바른 페이지 를 얻 을 수 있 습 니 다.그 원리 도 위의 상황 과 유사 하 다.즉,프로그램 에 인 코딩 유형 을 가리 키 고 표시 하면 정상이다.
3.양식 제출
폼 의 데 이 터 는 request.getParameter(")방법 으로 얻 을 수 있 지만 폼 에 중국어 데이터 가 나 올 때 오류 가 발생 합 니 다.
예제 코드 는 다음 과 같다.

<%@ page language="java" import="java.util.*" contentType="text/html;charset=gb2312"%> 
<html> 
  <head>   
    <title>Form      </title> 
  </head>  
  <body> 
    <font size="2"> 
               : 
      <form action="AcceptFormCharset.jsp" method="post"> 
           :<input type="text" name="userName" size="10"/> 
           :<input type="password" name="password" size="10"/> 
        <input type="submit" value="  "> 
      </form>  
    </font> 
  </body> 
</html> 
위의 양식 에서 AcceptFormCharset 이 페이지 에서 두 가지 데 이 터 를 제시 하고 싶 습 니 다.다음은 AcceptFormCharset.jsp 의 내용 입 니 다.

<%@ page language="java" import="java.util.*" 
  contentType="text/html;charset=gb2312"%> 
<html> 
  <head> 
    <title>Form    </title> 
  </head> 
  <body> 
    <font size="2">           request       :<br> 
      <% 
        String userName = request.getParameter("userName"); 
        String password = request.getParameter("password"); 
        out.println("    userName  :" + userName + "<br>"); 
        out.println("    password  :" + password + "<br>"); 
       %>  
    </font> 
  </body> 
</html>
위의 프로그램 에서 폼 입력 에 중국어 가 없 으 면 입력 한 데이터 에 중국어 가 있 을 때 얻 은 결 과 를 그림 과 같이 정상적으로 표시 할 수 있 습 니 다.

결과 가 나 온 이 유 는 Tomcat 에서 post 방법 으로 제출 한 폼 에 대한 기본 인 코딩 은 ISO-8859-1 이 며,이러한 인 코딩 형식 은 중국어 문 자 를 지원 하지 않 기 때 문 입 니 다.이 문 제 는 인 코딩 형식 을 바 꾸 는 방법 으로 해결 할 수 있 습 니 다.현재 AcceptFromCharset 페이지 를 다음 과 같이 변경 합 니 다.

<%@ page language="java" import="java.util.*" 
  contentType="text/html;charset=gb2312"%> 
<html> 
  <head> 
    <title>Form    </title> 
  </head> 
  <body> 
    <font size="2">           request       :<br> 
      <% 
        String userName = request.getParameter("userName"); 
        String password = request.getParameter("password"); 
        out.println("    userName  :" + new String(userName.getBytes("ISO-8859-1"), "gb2312")+ "<br>"); 
        out.println("    password  :" + new String(password.getBytes("ISO-8859-1"), "gb2312")+ "<br>"); 
       %>  
    </font> 
  </body> 
</html> 
이러한 변환 인 코딩 을 거 친 후 모든 중국어 입력 은 request 대상 으로 정상적으로 꺼 낼 수 있 습 니 다.위 프로그램 에서 네 번 째 줄 과 다섯 번 째 줄 은 인 코딩 형식 을 바 꾸 는 관건 입 니 다.ISO-8859-1 형식의 문자열 에서 바이트 내용 을 꺼 낸 다음 GB 2312 의 인 코딩 형식 으로 새로운 문자열 을 다시 만 듭 니 다.이렇게 하면 중국어 가 옅 어 지 는 입력 의 정상 적 인 수치 와 표 시 를 지원 할 수 있다.개선 후 프로그램 실행 결 과 는 다음 과 같 습 니 다.

위의 인 코딩 형식 변경 처 리 를 통 해 폼 의 중국어 입력 오류 문제 가 해결 되 었 습 니 다.그러나 위의 폼 의 입력 항목 이 두 개 에 그 치지 않 는 다 면 모든 입력 항목 이 인 코딩 변환 을 해 야 하기 때문에 매우 번거롭다.이것 은 우리 가 명성 이 자자 한 필터 filter 를 사용 한 것 이다.이곳 의 내용 에 대한 대체적인 고려 는 위의 것 과 마찬가지 로 구체 적 인 방법 은 필자 의별 편를 참조 하 시기 바 랍 니 다.
4.Eclipse 에서 JSP 파일 중국어 난호
Eclipse 나 MyEclipse 에 서 는 기본 JSP 인 코딩 형식 이 ISO-8859-1 이기 때문에 다른 편집기 에서 편집 한 JSP 파일 을 열 때 오류 가 발생 합 니 다.그림 과 같 습 니 다.

이 문제 에 대해 서 는 Eclipse 나 MyEclipse 에서 JSP 에 대한 기본 인 코딩 만 변경 하면 됩 니 다.수 정 된 곳(나의 MyEclipse 버 전 은 11)은 그림 과 같 습 니 다.

PS
Eclipse 나 MyEclipse 에서 JSP 파일 의 기본 인 코딩 은 ISO-8859-1 이 므 로 JSP 코드 중간 에 중국어 가 나 오 면 저장 할 수 없습니다.예 를 들 어 다음 코드 입 니 다.

<%@ page language="java" import="java.util.*" %> 
<html> 
  <head> 
  <title>      </title> 
 
  </head>  
  <body> 
            : 
  <% 
    String str = "  "; 
    out.print(str); 
  %> 
  </body> 
</html> 
수정 후 저장 할 때 다음 과 같이 알려 줍 니 다.

이 알림 의 원인 은 JSP 원본 파일 에 ISO=8859-1 인 코딩 으로 인식 할 수 없 는 중국어 문자 가 있 기 때 문 입 니 다.이 문제 에 대해 해결 방법 은 JSP 페이지 에서 페이지 인 코딩 형식 을 설명 하면 됩 니 다.설명 후 코드 는 다음 과 같 습 니 다.

<%@ page language="java" import="java.util.*" pageEncoding="GB2312" %> 
<html> 
  <head> 
  <title>      </title> 
 
  </head>  
  <body> 
            : 
  <% 
    String str = "  "; 
    out.print(str); 
  %> 
  </body> 
</html>
그 중에서 첫 번 째 줄 에서 pageEncoding="gb 2312"는 JSP 페이지 인 코딩 이 GB 2312 를 사용 하면 JSP 의 원본 파일 을 정상적으로 저장 할 수 있 음 을 가리킨다.
이상 은 본문 에서 말 한 모든 내용 이 니 여러분 들 이 좋아 하 시 기 를 바 랍 니 다.
친구 에 게 글 을 공유 하거나 댓 글 을 남 기 는 데 시간 이 좀 걸 리 세 요.우 리 는 진심으로 당신 의 지지 에 감사 할 것 입 니 다!

좋은 웹페이지 즐겨찾기