다음은 잘못된 문자에 대한 4가지 솔루션을 제공하며, 이는 기본적으로 웹 개발에서 잘못된 문자가 나타나는 다양한 상황을 다룹니다.
잘못된 코드 솔루션은 주로 java+mysql 개발 환경을 위해 제안되었습니다. 해당 수정이 이루어지면 다양한 언어 환경에서 잘못된 코드 문제를 해결하는 데 사용할 수 있습니다.
1. JSP 페이지에 잘못된 문자가 표시됩니다.
다음 표시 페이지(display.jsp)가 깨져서 나타납니다:
프로그램 코드
<html>
<머리>
<title>JSP의 중국어 처리</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>
<본문>
<%
out.print("JSP 중국어 처리");
%>
</body>
</html>
웹 서버와 JDK 버전이 다르면 처리 결과가 다릅니다. 이유: 서버에서 사용하는 인코딩 방법이 다르며 브라우저는 문자마다 다른 결과를 표시합니다. 해결 방법: JSP 페이지에서 인코딩 방법(gb2312)을 지정합니다. 즉, 페이지의 첫 번째 줄에 <%@ page contentType="text/html; charset=gb2312"%>를 추가하여 잘못된 문자를 제거합니다. 전체 페이지는 다음과 같습니다.
<%@ 페이지 contentType="text/html; charset=gb2312"%>
<html>
<머리>
<title>JSP의 중국어 처리</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>
<본문>
<%
out.print("JSP 중국어 처리");
%>
</body>
</html>
2. 중국어로 양식을 제출할 때 왜곡된 문자가 나타납니다. 아래는 다음 코드가 포함된 제출 페이지(submit.jsp)입니다
.
<html>
<머리>
<title>JSP의 중국어 처리</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>
<본문>
<form name="form1" method="post" action="process.jsp">
<div 정렬="중앙">
<입력 유형="텍스트" 이름="이름">
<input type="submit" name="제출" value="제출">
</div>
</form>
</body>
</html>
다음은 처리 페이지(process.jsp) 코드입니다.
프로그램 코드
<%@ 페이지 contentType="text/html; charset=gb2312"%>
<html>
<머리>
<title>JSP의 중국어 처리</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>
<본문>
<%=request.getParameter("이름")%>
</body>
</html>
submit.jsp에 제출한 영문자가 올바르게 표시될 수 있으면, 한자를 제출하면 글자가 깨져서 나타납니다. 이유: 브라우저는 기본적으로 UTF-8 인코딩을 사용하여 요청을 보냅니다. UTF-8 및 GB2312 인코딩 방법은 문자를 다르게 표시하므로 문자를 인식할 수 없습니다. 해결책: 중국어가 정상적으로 표시되도록 하려면 request.seCharacterEncoding("gb2312")을 통해 요청을 균일하게 인코딩하십시오. 수정된 process.jsp 코드는 다음과 같습니다.
프로그램 코드
<%@ 페이지 contentType="text/html; charset=gb2312"%>
<%
request.seCharacterEncoding("gb2312");
%>
<html>
<머리>
<title>JSP의 중국어 처리</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>
<본문>
<%=request.getParameter("이름")%>
</body>
</html>
3. 데이터베이스 연결이 깨졌습니다.
중국어와 관련된 모든 것이 왜곡되어 있는 한 해결책은 데이터베이스의 데이터베이스 URL에 useUnicode=true&characterEncoding=GBK를 추가하는 것입니다. 그러면 문제가 없습니다.
4. 데이터베이스 표시가 깨졌습니다.
mysql4.1.0에서는 varchar 유형과 text 유형에 중국어 왜곡 문자가 나타납니다. varchar 유형의 경우 이를 바이너리 속성으로 설정하면 중국어 문제를 해결할 수 있습니다. text 유형의 경우 인코딩 변환 클래스를 사용하여 이를 처리해야 합니다. 구현은 다음과 같습니다:
프로그램 코드
공개 클래스 변환 {
/** ISO-8859-1 코드를 GB2312로 변환
*/
공개 정적 문자열 ISOtoGB(문자열 iso){
문자열 gb;
노력하다{
if(iso.equals("") || iso == null){
반품 "";
}
또 다른{
iso = iso.trim();
gb = new String(iso.getBytes("ISO-8859-1"),"GB2312");
GB를 반환;
}
}
catch(예외 e){
System.err.print("인코딩 변환 오류:"+e.getMessage());
반품 "";
}
}
}
이를 클래스로 컴파일하고 Convert 클래스의 정적 메서드 ISOtoGB()를 호출하여 인코딩을 변환할 수 있습니다.