java 중국어 전송 디코딩 문제 해결 방법
일반 인코딩 형식 설정:
1. 두 번의 인코딩 처리, 즉 문자 집합을 설정한 후 삽입 전에 문자 집합을 디코딩하는 것도 가장 효과적인 방법이다
문자 집합을 설정하려면:
String value=null;
try {
value= URLEncoder.encode(jsonObjectPar.getString(“value”), “UTF-8”);
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
문자 세트 디코딩:
String value=null;
try {
value= new String(value.getBytes(“iso-8859-1”),”UTF-8”);
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
2. 직접 처리:userName = new String(userName.getBytes(“ISO-8859-1”), “UTF-8”);
3. 만약에 인터럽트할 때 삽입할 때 중국어이고 데이터베이스에 가서 코드를 엉망으로 하면 일반적으로 데이터베이스가 UTF-8로 설정되지 않는다.
먼저 데이터베이스 인코딩 보기(MySQL의 경우):
데이터베이스 조회에서 실행:showvariables like'character%';모든 인코딩 정보 보기
UTF-8이 아닌 문자 집합을 수정합니다. 주로datebase가 UTF-8인지 확인하십시오. 명령
show variables like ‘character%';
+――――――――C+―――――――――-+
| Variable_name | Value |
+――――――――C+―――――――――-+
| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | latin1 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+――――――――C+―――――――――-+
상기 정보에서 알 수 있듯이 데이터베이스의 인코딩은latin1이고 gbk 또는utf8로 수정해야 한다.여기서 character_set_클라이언트 인코딩 방식;character_set_연결을 위한 인코딩;character_set_데이터베이스 데이터베이스 인코딩;character_set_results 결과 집합의 인코딩;character_set_서버 데이터베이스 서버의 인코딩은 상기 네 가지가 사용한 인코딩 방식과 같다면 디코딩 문제가 발생하지 않을 것이다.
4. 백그라운드에서 페이지 난장판까지의 문제:
데이터를 반환하기 전에 문자 세트를 설정합니다.
response.setCharacterEncoding(“utf-8”);
5.jsp 페이지에서 백그라운드로 부호화:
5-1.jsp의 인코딩 설정은utf-8
5-2.백스테이지 이렇게 판단.
String name = request.getParameter(“ABC”);
if(name.equals(new String(request.getParameter(“ABC”).getBytes(“iso8859-1”), “iso8859-1”))) {
name = new String(name.getBytes(“iso8859-1”),”UTF-8”);
}
get 방식으로 제출한 인코딩은 iso8859-1입니다.이상은 본문의 전체 내용입니다. 여러분의 학습에 도움이 되고 저희를 많이 응원해 주십시오.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
38. Java의 Leetcode 솔루션텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.