>Java >Java베이스 >Java 제출 잘못된 코드 솔루션

Java 제출 잘못된 코드 솔루션

尚
원래의
2019-12-17 14:54:132481검색

Java 제출 잘못된 코드 솔루션

Java 제출 잘못된 코드에 대한 해결 방법:

1. 제출 방법이 게시이고 잘못된 코드를 방지하려면 서버 측에서 요청 개체의 인코딩을 설정하기만 하면 됩니다. 클라이언트가 서버측에 요청 객체를 제출하려면 해당 인코딩으로 수신하면 됩니다. 예를 들어 클라이언트가 이를 UTF-8 인코딩으로 제출하면 서버측 요청 객체는 UTF-8 인코딩으로 수신됩니다. (request.setCharacterEncoding("UTF-8"))

2. 요청 개체의 인코딩 설정이 유효하지 않은 경우 요청 개체는 여전히 기본 ISO8859-1 인코딩으로 데이터를 받습니다. 문자가 왜곡되는 것을 방지하려면 데이터를 받은 후에만 수동으로 변환할 수 있습니다. 단계는 다음과 같습니다.

1) 클라이언트가 제출한 데이터를 가져오고 왜곡된 문자열 data="???è? ???"

String data = request.getParameter("paramName");

2). ISO8859-1 코드 테이블을 검색하여 클라이언트가 제출한 원본 데이터를 가져옵니다. 바이트 배열

byte[] source = data.getBytes("ISO8859-1");

3). 바이트 배열을 통해 지정된 인코딩으로 문자열을 구성하여 잘못된 문제를 해결합니다. 문자

data = new String(source, "UTF-8");

바이트 배열을 통해 지정된 인코딩으로 문자열을 구성합니다. 여기에 지정된 인코딩은 클라이언트 측을 기반으로 하며 데이터를 제출할 때 사용된 문자 인코딩에 따라 결정됩니다. GB2312인 경우 데이터 =로 설정합니다. new String(source, "GB2312"). UTF-8이면 data = new String(source, "UTF -8")

3으로 설정합니다. 클라이언트가 서버에 데이터를 전송하려는 경우 양식을 통해 제출하거나 하이퍼링크 뒤에 매개변수를 추가할 수 있습니다. 예:

<a href="${pageContext.request.contextPath}/servlet/RequestDemo05?userName=gacl&name=房明">点击</a>

하이퍼링크를 클릭하면 데이터가 get 형식으로 서버에 전송되므로 중국어 데이터를 수신할 때도 중국어 왜곡 문제가 발생합니다. 중국어 왜곡 문제를 해결하는 방법은 위에서 언급한 get 메소드에서 양식을 제출할 때 중국어 데이터 왜곡 문제를 처리하는 방법과 동일하며 다음과 같습니다.

String name = request.getParameter("name");
name =new String(name.getBytes("ISO8859-1"), "UTF-8");

그 외에 필수로 언급해야 할 점 URL 주소 뒤에 중국어 데이터가 오면 중국어 매개변수는 아래와 같이 URL 인코딩을 사용하여 가장 잘 처리됩니다.

<a href="${pageContext.request.contextPath}/servlet/RequestDemo05?userName=gacl&name=<%=URLEncoder.encode("房明", "UTF-8")%>">点击</a>

자바에 대한 더 많은 지식을 보려면 java 기본 튜토리얼 열에 주의하세요.

위 내용은 Java 제출 잘못된 코드 솔루션의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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