오늘 웹 서비스 프로그램을 배포할 때 페이지에서 데이터를 얻는 서블릿에 잘못된 문제가 발생했습니다. 서블릿에서 코드에 request.setCharacterEncoding("GB2312"); 텍스트를 추가했지만 여전히 잘못된 문제가 발생했습니다.
다음과 같이 온라인에서 정보를 찾아보세요. JAVA는 유니코드 인코딩이므로 먼저 ISO8859-1로 변환한 다음 GBK 또는 GB2312로 변환합니다.
자바 코드
이것은 중국어입니다!
서버에서 직접 인코딩 변환을 설정하는 더 쉬운 방법이 있습니다. TOMCAT5.0.28이 사용됩니다.
../Tomcat 5.0/conf 디렉터리에서 SERVER.XML 파일을 찾아 워드패드로 열고 다음과 같이 설정합니다.
내부에 URIEncoding="GBK" 속성을 추가하면 됩니다.
테스트가 통과되면 완료됩니다. 그러면 request.setCharacterEncoding("GB2312") 문장이 어떤 역할을 합니까? 지저분한 문제를 해결할 수 없는 경우 이를 사용하여 정보는 다음과 같이 구성됩니다.
(1) JSP 페이지는 중국어로 되어 있는데, 보면 깨져있습니다.
해결 방법은 JSP를 Java 파일로 변환할 때 인코딩 문제 때문에 일부 서버에서는 기본적으로 ISO-8859-1을 사용합니다. JSP에 중국어를 직접 입력하면 JSP에서는 이를 ISO8859로 처리합니다. 1은 확실히 문제입니다. Jasper가 생성한 Java 중간 파일을 보면 이를 확인할 수 있습니다.
(2) 고객이 제출한 한자 코드를 얻기 위해 요청 개체를 사용할 때 왜곡된 문자가 나타납니다.
해결책은 Servlet 필터인 필터를 구성하는 것입니다. 코드는 다음과 같습니다.
request.setCharacterEncoding("GBK");
// 제어를 다음 필터로 전달합니다.
chain.doFilter(요청, 응답);
}
<필터 매핑></필터 매핑>
<filter-name></filter-name>문자 인코딩 설정
<url-패턴></url-패턴>/*
한자가 포함된 정보에 대한 처리도 있습니다. 처리 코드는 다음과 같습니다.
해결책은 다음과 같습니다.
1) tomcat의 server.xml 파일을 열고 블록을 찾아 다음 줄을 추가합니다.
URIEncoding=”GBK”
전체 내용은 다음과 같아야 합니다.
(4) JSP 페이지에는 한자가 있고 버튼에는 한자가 있는데, 서버를 통해 페이지를 볼 때 깨져 보이는 문자가 나타납니다.
해결책은 다음과 같습니다. 첫째, 현지화된 메시지 텍스트를 JSP 파일에 직접 포함해서는 안 되지만 텍스트는 <bean:message> 태그를 통해 리소스 번들에서 가져와야 합니다. Application.properties 파일에 중국어 텍스트를 입력해야 합니다. 이 파일은 WEB-INF/classes/*에 있습니다. 예를 들어 페이지에 이름과 나이에 대한 두 개의 레이블이 있는 경우 먼저 응용 프로그램을 만들어야 합니다. 속성 내부의 내용은 name="name"이어야 합니다. age = "age"이면 이 파일을 WEB-INF/classes/properties/에 넣은 다음 Application.properties 파일에 따라 인코딩하고 이름이 Application_cn.properties라고 가정하여 중국어 리소스 파일을 만듭니다. JDK에는 문자 인코딩 변환을 실현할 수 있는 Native2ascii 명령이 제공됩니다. DOS 환경에서 Application.properties 파일을 배치한 디렉토리를 찾으십시오. DOS 환경에서 명령을 실행하십시오. GBK로 인코딩된 중국어 자원 파일 Application_cn.properties가 생성됩니다: Native2ascii ?encoding gbk Application.properties Application_cn.properties. 위 명령을 실행하면 나중에 다음 내용이 포함된 Application_cn.properties 파일이 생성됩니다. age=u5e74u9f84, Struts-config.xml에 구성: <message-resources 매개변수="properties.Application_cn"></message-resources>. 이제 기본적으로 절반 이상이 완료되었습니다. 그러면 JSP 페이지에 이름을 적어야 합니다. <bean:message key=""name"">이 나타납니다. 페이지에 중국어 이름이 표시되고, 나이도 마찬가지이며, 버튼의 한자도 같은 방식으로 처리됩니다.
(5) 데이터베이스에 작성된 코드가 깨졌습니다.
해결책: Servlet 필터인 필터를 구성하십시오. 코드는 두 번째와 동일합니다.
JDBC를 통해 데이터베이스에 직접 연결하는 경우 데이터베이스의 코드가 왜곡되지 않도록 구성 코드는 jdbc:mysql://localhost:3306/workshopdb?useUnicode=true&characterEncoding=GBK와 같습니다.
데이터 소스를 통해 연결하는 경우에는 이렇게 작성할 수 없습니다. 먼저 구성 파일에 작성해야 합니다. Tomcat 5.0.19에서 데이터 소스를 구성하는 곳은 제가 만든 C:Tomcat 5.0confCatalinalocalhost입니다. 프로젝트는 Workshop이고, 해당 프로젝트가 위치한 디렉터리는 webapp 아래에 있습니다. Workshop.xml의 구성 파일은 다음과 같습니다.
<resource name="jdbc/WorkshopDB"></resource>auth="컨테이너"
유형="javax.sql.DataSource" />
<resourceparams name="jdbc/WorkshopDB"></resourceparams>
<매개변수></매개변수>
<name></name>공장
<값></값>org.apache.commons.dbcp.BasicDataSourceFactory
<매개변수></매개변수>
<name></name>최대활성
<값></값>100
<매개변수></매개변수>
<name></name>maxIdle
<값></값>30
<매개변수></매개변수>
<name></name>maxWait
<값></값>10000
<매개변수></매개변수>
<이름></name>사용자 이름
<값></값>루트
<매개변수></매개변수>
<이름></이름>비밀번호
<값></값>
<매개변수></매개변수>
<name></name>드라이버클래스이름
<값></값>com.mysql.jdbc.Driver
<매개변수></매개변수>
<이름></이름>URL
<값></값>
굵은 글씨 부분에 특히 주의하세요. JDBC에 대한 직접 링크와 다릅니다. 올바르게 구성하면 중국어를 입력할 때 데이터베이스에 중국어로 표시된다는 점입니다. 이 코드 줄도 필요합니다. 주의할 점은 일부 프런트 직원이 Dreamver를 사용하여 코드를 작성하는데, Form을 작성할 때 주의할 점이 하나 있는데 바로 Dreamver에서 Action을 제출하는 방법이다. JSP 제출에는 POST와 GET이라는 두 가지 방법이 있기 때문에 이를 보내야 합니다. 그러나 이 두 가지 방법으로 제출된 코드는 인코딩 측면에서 여전히 매우 다릅니다. </bean:메시지>< /bean:메시지>