ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • UTF-8, UTF-16, UTF-32, 한글 인코딩
    EDI 관련 기술 용어 2022. 7. 20. 11:00

     

    지난번에 이어, 유니코드 기반의 문자들을 바이트(byte) 열에 표현하는 인코딩 방식을 정리해보겠습니다.

     


     

    UTF 인코딩 방식으로는 UTF-8, UTF-16, UTF-32 등이 있습니다.

    UTF 뒤의 숫자는 한 문자를 인코딩하는 길이로, UTF-8은 유니코드 문자를 8비트(1바이트) 값으로 인코딩함을 의미합니다.

    UTF-8

     

    문자의 코드가 속한 범위에 따라 1~4byte 인코딩하는 가변 길이 인코딩 방식입니다.

    유니코드 문자 모두를 인코딩하며 가장 많이 사용되는 방식입니다.

    아스키(ASCII) 문자들은 변형없이 1바이트에 그대로 인코딩하고, 중동과 유럽 지역의 언어는 2바이트, 한글을 포함한 아시아권은 3byte 이상으로 인코딩합니다.

    웹에서 많이 사용되며, XML 및 HTML의 기본 인코딩으로 UTF-8을 권장합니다.

     

     

    UTF-16

     

    2바이트(16비트) 가변 길이 인코딩 방식입니다.

    유니코드 한 문자를 나타내기 위해 2~4바이트를 사용하는데, 영문과 한글은 2바이트를 사용합니다.

    자바 프로그래밍에서 기본으로 사용됩니다.

    UTF-8과 비교하였을 때, 저장 공간의 효율성을 가지고 올 수 있지만, Byte Ordering을 고려해야하기 때문에 UTF-8보다 복잡하다는 단점이 있습니다.

     

    UTF-32

     

    UTF-32는 모든 문자를 4바이트(32비트) 고정 길이로 인코딩합니다.

    유니코드의 모든 문자에 해당하는 UTF-32 값이 색인화되어 있어, 인코딩 변환 처리가 따로 필요 없습니다.

    따로 변형 규칙이나 가변 길이를 고려하지 않아도 되기 때문에 일관성있고 단순하다는 장점이 있습니다.

    하지만 하나의 문자를 저장하는 데 많은 저장 공간을 사용한다는 단점이 있습니다.

     

     

    한글 인코딩

     

    출처 : https://www.unicode.org/charts/PDF/U1100.pdf

     

    한글에서 자주 사용하는 인코딩은 UTF-8, EUC-KR, CP949입니다.

    앞서 본 UTF-8은 유니코드 형태의 문자를 변환하기 위한 가변길이 문자 인코딩으로, 기존 아스키(ASCII)로 작성된 문서와 호환되는 인코딩입니다.

     

     

    EUC-KR

     

    EUC-KR에서 EUC는 Extended Unix Code의 약자로 확장 유닉스 코드라고 합니다.

    아시아계 문자를 표시하기 위한 확장 부호입니다.

    영문은 KSC5636, 한글은 KSC5601을 사용하여 처리합니다.

     

    CP949

     

    CP949는 Code Page의 약자로 마이크로 소프트에서 사용하는 한글 문자의 부호표입니다.

    한글 완성형 인코딩이라고 하는데 EUC-KR에서 표현하지 못하는 문자를 표현하기 위해 만들었습니다.

    EUC-KR과 CP949는 KSC5601을 기본으로 하고 있기 때문에, 자바 환경 이외에 대부분 호환이 가능하지만 유니코드와는 호환되지 않습니다.

    국제 표준인 유니코드와 유닉스 계열을 구분하여 사용하는 것이 필요합니다.

    이외에도 언어, 실행 환경, OS에 따라 인코딩이 다를 수 있기 때문에 서로 호환이 되는지 확인이 필요합니다.

     


    [참고 자료]

     

    TTA정보통신용어사전

    한국정보통신기술협회(TTA)는 정보통신 기술 발전과 타 분야와의 기술 융합에 따라 무수히 생성되는 정보통신용어를 해설하고 표준화하여, 전문가뿐만 아니라 비전문가들도 올바르게 활용할 수

    terms.tta.or.kr


     

     

     

    'EDI 관련 기술 용어' 카테고리의 다른 글

    소켓(Socket)  (0) 2022.08.05
    Base64  (0) 2022.07.27
    문자 인코딩(Character Encoding)  (0) 2022.07.15
    AS2 작동방식  (0) 2022.06.30
    AS1, AS2, AS3, AS4  (0) 2022.06.03

    댓글

Designed by CONNECT SERVICE