한글 인코딩 정리 (자바를 중심으로)

[1] 요약

인코딩 (코드페이지) 자바의 대응 인코딩 문자셋 비고
ASCII = US-ASCII US-ASCII (인코딩과 동일) 기본적으로 0~127까지의 7bit 임.
ISO 8859-1 ISO 8859-1   8bit 코드. 확장(extended) ASCII 의 일종으로 분류하기도 함.
windows-1252 = cp-1252 windows-1252   8bit 코드. 영문 윈도우에 기본적으로 사용되는 인코딩(?)
euc-kr EUC-KR ks x 1001 = ks c 5601 한글 2350자
(windows 95 이전 cp949) x-IBM949 = Cp949 또는 x-IBM949C = Cp949C   한글 2620자. euc-kr 에 비해 한글은 추가되었고, 특수문자, 한자의 포함여부가 약간 차이가 난다. x-IBM949C는 xIBM949와달리  0x5c이 원화표시가 아닌 역슬래시를 () 의미함.
windows-949 = ms-949 = cp-949 x-windows-949 = MS949 UHC(Unified Hangul Code) = 확장 완성형 = 통합형 한글 코드 한글 11172자 (ks X 1001 에 8822자 추가). IANA에 등록되어 있지 않아서 통신용으로 사용할 수 없음.
utf-8, utf-16le, utf-16be, utf-32le, utf-32be UTF-8, UTF-16, UTF-16BE, UTF-16LE, UTF-32, UTF-32BE, UTF-32LE ? 유니코드.

[2] 부연 설명

  • 문자셋(Chracter Set)과 인코딩(Encoding)은 다른 개념.

  • 유니코드 문자셋에서 ‘가’ 는 U+AC00 값으로 표현함.

그러나 이것을 데이터로 저장할때는 인코딩의 종류(utf-8, utf-16be, utf-16le, utf-32be, utf-32le) 에 따라  대응하는 값이 각각 다르다.

  • US-ASCII 처럼 인코딩과 문자셋이 개념상 구분없이 사용될 수도 있는 경우도 있음.

  • CP(Code Page)는 문자셋보다는 인코딩 개념임.

  • CP949는 마이크로소프트사가 만들었음.

  • CP949는 최초에는 일부 한글만 표현 가능하였으나 윈도우 95부터는 확장 완성형(UHC)을 지원하여 모든 현대 한글 11172자를 표현할 수 있게되었음.

  • 일반적으로 CP949는 확장 완성형을 모두 표현할수 있는 현재의 윈도우 한글 인코딩 방식을 의미 하나, 자바에서는 CP949가 예전의 한글 2350자만을 포함하는  문자셋/인코딩을 지칭할 때 사용하는 것으로 보임. 자바는 대신 x-windows-949 를 현재의 확장 완성형을 지원하는 한글 인코딩/문자셋을 지칭할 때 사용함.

  • 윈도우 계열 인코딩을 ANSI라고 부르기도 하나 잘못된 표현임.

  • SBCS, DBCS, MBCS, WBCS는 주로 윈도우에서 프로그램이 메모리상의 문자열을 다루는 것과 관련하여, 문자셋들을 구분/분류하기 위해 사용하는 용어로 보임. SBCS는 주로 ASCII 계열에 대응하고 WBCS는 16비트 유니코드 문자셋에 대응한다고 보면 될듯.

[3] 분석 및 테스트에 관하여..

참고 문서들에 나와있는 설명으로는 자바에 정의된 문자셋 간의 차이가 명확해 보이지지 않은 점들이 있었습니다.

그래서 x-IBM949C와 x-IBM949 의 차이 등을 확인하기 위하여, 인터넷에 공개된 sun java 소스코드를 직접 분석하여 판단하였음을 알려드립니다.

그리고 EUC-KR, x-IBM949, x-windows-949 의 문자셋의 범위를 확인하기 위해 유니코드를 기준으로 어떤 문자가 포함되어있고 어떤 문자는 빠져있는지 아래에 작성한 프로그램으로 테스트 해보았습니다.

EncodingTest3.java

EUC-KR.txt

x-IBM949.txt

x-windows-949.txt

첨부해드린 파일을 Winmerge 등의 툴을 사용해서 확인해보시면 명확하게 파악하실 수 있으실것 같네요.

[4] 참고

경축! 아무것도 안하여 에스천사게임즈가 새로운 모습으로 재오픈 하였습니다.
어린이용이며, 설치가 필요없는 브라우저 게임입니다.
https://s1004games.com

(특히 아래 세가지는 한글 인코딩/문자셋에 개념을 잡아주는데 좋은 글입니다.)

http://helloworld.naver.com/helloworld/19187

http://helloworld.naver.com/helloworld/76650

http://jinuine.blogspot.kr/2013/09/ms949.html

(아래는 정리하면서 함께 참고한 글들입니다.)

http://ko.wikipedia.org/wiki/KS_X_1001

http://ko.wikipedia.org/wiki/KS_X_1003

http://ko.wikipedia.org/wiki/EUC-KR

http://ko.wikipedia.org/wiki/%EC%BD%94%EB%93%9C_%ED%8E%98%EC%9D%B4%EC%A7%80_949

http://en.wikipedia.org/wiki/ISO/IEC_8859-1

http://en.wikipedia.org/wiki/Windows-1252

http://www.iana.org/assignments/character-sets/character-sets.xhtml

http://docs.oracle.com/javase/8/docs/technotes/guides/intl/encoding.doc.html

(혹시, HTTP나, HTML, 그리고 톰켓과 관련한 사항이 궁금하시다면 아래 글을 정독해보세요. 제일 명확한 설명인듯 하더군요.)

http://wiki.apache.org/tomcat/FAQ/CharacterEncoding

 

[출처] http://www.jollybus.kr/2014/05/%ED%95%9C%EA%B8%80-%EC%9D%B8%EC%BD%94%EB%94%A9-%EC%A0%95%EB%A6%AC-%EC%9E%90%EB%B0%94%EB%A5%BC-%EC%A4%91%EC%8B%AC%EC%9C%BC%EB%A1%9C/

 

 

 

 

본 웹사이트는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
번호 제목 글쓴이 날짜 조회 수
998 A Look at REST API Design Patterns file 졸리운_곰 2021.03.14 120
997 서버 확장을 위한 두 가지 방법: 스케일 아웃과 스케일 업 file 졸리운_곰 2021.03.07 83
996 [Apache Multi Domain] 아파치 멀티 도메인 : 이름기반 VirtualHost 설정 졸리운_곰 2021.02.13 541
995 Xampp virtualhost setting not working : Xampp Virtual Host: How to configure Virtual Host in Xampp file 졸리운_곰 2021.02.13 91
994 XAMPP 가상호스트 설정과 도메인 연결 file 졸리운_곰 2021.02.12 143
993 텍스트를 음성 mp3로 간단하게 변환하기 (With Naver Cloud Platform) : 딥러닝 몰라도 TTS 하는 법 file 졸리운_곰 2021.02.10 127
992 시각화 대시보드 를 만들기 위해 고려해야 하는 4가지 file 졸리운_곰 2021.02.10 178
991 gRPC 훑어보기 file 졸리운_곰 2021.02.10 105
990 [MSDOS app] 하늘 3.2 file 졸리운_곰 2021.01.29 82
» 한글 인코딩 정리 (자바를 중심으로) 졸리운_곰 2021.01.29 96
988 한글 도깨비 5.1 소프트웨어 버전 file 졸리운_곰 2021.01.26 194
987 아래아 한글 2.1 일반용 file 졸리운_곰 2021.01.26 85
986 아래아 한글 1.51 file 졸리운_곰 2021.01.26 95
985 NEMESIS Go Master 3.2 (바둑) file 졸리운_곰 2021.01.26 73
984 미니 한글 라이브러리 file 졸리운_곰 2021.01.26 121
983 한글 인코딩의 이해 2편: 유니코드와 Java를 이용한 한글 처리 file 졸리운_곰 2021.01.26 112
982 한글 인코딩의 이해 1편: 한글 인코딩의 역사와 유니코드 졸리운_곰 2021.01.26 86
981 한글 인코딩의 이해(유니코드) 완전 기초! file 졸리운_곰 2021.01.26 147
980 Quick Basic 4.5 file 졸리운_곰 2021.01.25 71
979 컴퓨터 속의 한글 도서 부록 디스켓 file 졸리운_곰 2021.01.25 75
대표 김성준 주소 : 경기 용인 분당수지 U타워 등록번호 : 142-07-27414
통신판매업 신고 : 제2012-용인수지-0185호 출판업 신고 : 수지구청 제 123호 개인정보보호최고책임자 : 김성준 sjkim70@stechstar.com
대표전화 : 010-4589-2193 [fax] 02-6280-1294 COPYRIGHT(C) stechstar.com ALL RIGHTS RESERVED