진이의 Developer Story

자바 인코딩 확인하기 본문

Java

자바 인코딩 확인하기

JIN3260 2017. 1. 3. 17:29
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로 전송되는 경우도 있다...


이럴 땐 해당 예제를 이용해서 원래의 문자열을 찾아보는 것도 좋은 방법이라고 생각한다!

Comments