Character encoding simple check 간단한 한글 인코딩 확인
Android 2019. 10. 12. 20:40 |반응형
서버에서 데이터를 받아 오는 경우 모든 문자가 알파벳이나 숫자라면 상관 없지만 한글이 섞여 있다면 글자가 깨지는 문제가 발생하고 어떤 인코딩이 사용되었는지 확인하기 어려운 경우가 있다. 아래와 같이 단순한 방법으로 간단히 확인 할 수 있다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | try { Log.d("Encoding Check", "utf-8 -> euc-kr: " + new String(str.getBytes("utf-8"), "euc-kr")); Log.d("Encoding Check", "utf-8 -> ksc5601: " + new String(str.getBytes("utf-8"), "ksc5601")); Log.d("Encoding Check", "utf-8 -> x-windows-949: " + new String(str.getBytes("utf-8"), "x-windows-949")); Log.d("Encoding Check", "utf-8 -> iso-8859-1: " + new String(str.getBytes("utf-8"), "iso-8859-1")); Log.d("Encoding Check", "iso-8859-1 -> euc-kr: " + new String(str.getBytes("iso-8859-1"), "euc-kr")); Log.d("Encoding Check", "iso-8859-1 -> ksc5601: " + new String(str.getBytes("iso-8859-1"), "ksc5601")); Log.d("Encoding Check", "iso-8859-1 -> x-windows-949: " + new String(str.getBytes("iso-8859-1"), "x-windows-949")); Log.d("Encoding Check", "iso-8859-1 -> utf-8: " + new String(str.getBytes("iso-8859-1"), "utf-8")); Log.d("Encoding Check", "euc-kr -> utf-8: " + new String(str.getBytes("euc-kr"), "utf-8")); Log.d("Encoding Check", "euc-kr -> ksc5601: " + new String(str.getBytes("euc-kr"), "ksc5601")); Log.d("Encoding Check", "euc-kr -> x-windows-949: " + new String(str.getBytes("euc-kr"), "x-windows-949")); Log.d("Encoding Check", "euc-kr -> iso-8859-1: " + new String(str.getBytes("euc-kr"), "iso-8859-1")); Log.d("Encoding Check", "ksc5601 -> euc-kr: " + new String(str.getBytes("ksc5601"), "euc-kr")); Log.d("Encoding Check", "ksc5601 -> utf-8: " + new String(str.getBytes("ksc5601"), "utf-8")); Log.d("Encoding Check", "ksc5601 -> x-windows-949: " + new String(str.getBytes("ksc5601"), "x-windows-949")); Log.d("Encoding Check", "ksc5601 -> iso-8859-1: " + new String(str.getBytes("ksc5601"), "iso-8859-1")); Log.d("Encoding Check", "x-windows-949 -> euc-kr: " + new String(str.getBytes("x-windows-949"), "euc-kr")); Log.d("Encoding Check", "x-windows-949 -> utf-8: " + new String(str.getBytes("x-windows-949"), "utf-8")); Log.d("Encoding Check", "x-windows-949 -> ksc5601: " + new String(str.getBytes("x-windows-949"), "ksc5601")); Log.d("Encoding Check", "x-windows-949 -> iso-8859-1: " + new String(str.getBytes("x-windows-949"), "iso-8859-1")); } catch(Exception e) { e.printStackTrace(); } |
Logcat을 확인해 보면 'iso-8859-1 -> utf-8'이 정상적으로 한글을 표시했다.
그런데 위 코드 중 'utf-8 -> iso-8859-1'은 Logcat에 출력 되지 않는다. System.out.println()으로 해도 출력되지 않지만, 이 문자열을 기기에서 출력해 보면 깨진 한글로 표시는 된다. 이유는 알 수 없다.
1 | Log.d("Encoding Check", "utf-8 -> iso-8859-1: " + new String(str.getBytes("utf-8"), "iso-8859-1")); |
반응형
'Android' 카테고리의 다른 글
Get contact data 연락처 정보 가져오기 (0) | 2019.10.16 |
---|---|
Get multiple sensor data 여러가지 센서 데이터 받아 오기 (0) | 2019.10.15 |
Data request to the web server 웹서버에 데이터 요청하고 응답 받기 (0) | 2019.10.12 |
How to use Timer and TimerTask 타이머 사용하기 (0) | 2019.10.09 |
Calculating approximate distance between two locations 두 지점의 거리 구하기 (0) | 2019.10.09 |