java 중국어 전송 디코딩 문제 해결 방법

2301 단어 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입니다.
이상은 본문의 전체 내용입니다. 여러분의 학습에 도움이 되고 저희를 많이 응원해 주십시오.

좋은 웹페이지 즐겨찾기