진이의 Developer Story
자바 인코딩 확인하기 본문
String originalStr = "Å×½ºÆ®"; // 테스트 String[] charSet = { "utf-8", "euc-kr", "ksc5601", "iso-8859-1", "x-windows-949" }; for (int i = 0; i < charSet.length; i++) { for (int j = 0; j < charSet.length; j++) { try { System.out.println("[" + charSet[i] + "," + charSet[j] + "] = " + new String(originalStr.getBytes(charSet[i]), charSet[j])); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } } } [utf-8,utf-8] = Å×½ºÆ® [utf-8,euc-kr] = ��쩍쨘�짰 [utf-8,ksc5601] = ��쩍쨘�짰 [utf-8,iso-8859-1] = Å×½ºÆ® [utf-8,x-windows-949] = 횇횞쩍쨘횈짰 [euc-kr,utf-8] = ?���������� [euc-kr,euc-kr] = ?×½ºÆ® [euc-kr,ksc5601] = ?×½ºÆ® [euc-kr,iso-8859-1] = ?¡¿¨ö¨¬¨¡¢ç [euc-kr,x-windows-949] = ?×½ºÆ® [ksc5601,utf-8] = ?���������� [ksc5601,euc-kr] = ?×½ºÆ® [ksc5601,ksc5601] = ?×½ºÆ® [ksc5601,iso-8859-1] = ?¡¿¨ö¨¬¨¡¢ç [ksc5601,x-windows-949] = ?×½ºÆ® [iso-8859-1,utf-8] = ��Ʈ [iso-8859-1,euc-kr] = 테스트 [iso-8859-1,ksc5601] = 테스트 [iso-8859-1,iso-8859-1] = Å×½ºÆ® [iso-8859-1,x-windows-949] = 테스트 [x-windows-949,utf-8] = ?���������� [x-windows-949,euc-kr] = ?×½ºÆ® [x-windows-949,ksc5601] = ?×½ºÆ® [x-windows-949,iso-8859-1] = ?¡¿¨ö¨¬¨¡¢ç [x-windows-949,x-windows-949] = ?×½ºÆ®
한글 인코딩이 깨져서 문자를 복구해야 하는 경우나, 어떤 인코딩으로 인코딩이 되었는지 알아볼 때, 약간의 노가다(?)를 하면 복구를 하거나 해당 문자열의 인코딩을 찾을 수 있다.
charSet 배열에 삽입한 인코딩을 이용하여 getBytes() 메소드를 이용하여 바이트배열로 변환한 후 다른 인코딩의 문자열로 변환하는 예제이다.
가끔 통신을 하다보면 문자열이 맞지 않아서 개고생하는 경우가 있는데...
상대방은 자기는 UTF-8로 전송했다고 말을 하지만 EUC-KR로 전송되는 경우도 있다...
이럴 땐 해당 예제를 이용해서 원래의 문자열을 찾아보는 것도 좋은 방법이라고 생각한다!
'Java' 카테고리의 다른 글
java 유틸성 라이브러리 (0) | 2017.04.14 |
---|---|
String -> JSON 변환 (0) | 2016.02.12 |
양력의 기원 및 양음력 변환방법 (1) (0) | 2016.01.29 |
URL을 사용한 POST 전송 후 결과값 읽어와서 반환하기 (0) | 2016.01.28 |
CryptorJS in Java Example (0) | 2016.01.28 |
Comments