iso 8859-1, EUC-KR, MS 949, UTF-8

carlkim·2023년 12월 22일
0

시스템엔지니어링

목록 보기
13/35
post-thumbnail

ISO 8859-1은 인코딩 방식 중 하나로, 특히 서유럽 언어를 다루기 위해 설계되었습니다.
이를 통해 문자 집합을 숫자로 나타내고 전송하는 방법이 정의되어 있습니다.
ISO 8859-1은 라틴 알파벳을 기반으로 하며, 서유럽 언어에 사용되는 대부분의 문자를 포함하고 있습니다.

주요 특징.

  1. 문자 집합 : ISO 8859-1은 8비트(1바이트)로 문자를 표현합니다. 총 256개의 문자를 표현할 수 있으며, 이 중에서 191개는 서로 다른 문자이고 나머지는 제어 문자, 공백, 기호 등이 포함되어 있습니다.

  2. 라틴 알파벳 : ISO 8859-1은 주로 서유럽 언어를 지원하기 위해 라틴 알파벳을 사용합니다. 따라서 영어, 프랑스어, 독일어, 스페인어 등 서유럽 언어의 문자를 표현할 수 있습니다.

  3. 확장 문자 : ISO 8859-1은 ASCII (미국 정보 교환 표준 부호)를 기반으로 확장되었기 때문에 ASCII 문자도 동일하게 표현할 수 있습니다. 이는 호환성 면에서 이점을 제공합니다.

  4. 한정적인 다국어 지원 : ISO 8859-1은 주로 서유럽 언어를 지원하기 위해 만들어졌기 때문에 동양 언어 등 다양한 문자를 지원하지 못합니다.

그러나 ISO 8859-1은 모든 언어의 문자를 지원하지 않기 때문에 국제적인 환경에서는 UTF-8과 같은 유니코드 기반의 인코딩이 더 일반적으로 사용됩니다.
UTF-8은 전 세계의 거의 모든 문자를 지원하며, 여러 언어의 텍스트를 효과적으로 처리할 수 있습니다.

EUC-KR (Extended Unix Code-KR):

EUC-KR은 주로 Unix 및 Unix 기반의 시스템에서 사용되는 문자 인코딩 방식 중 하나입니다.
한글 외에도 영문, 숫자 등을 1바이트 또는 2바이트로 표현합니다.
기본적으로 ASCII 문자와 호환되며, 한글은 한 글자당 2바이트로 표현됩니다.

MS 949 또는 CP949 (Code Page 949):

-- MS 949는 주로 Microsoft Windows 시스템에서 사용되는 문자 인코딩 방식입니다.
-- EUC-KR과 유사하게 한글 외에도 영문, 숫자 등을 1바이트 또는 2바이트로 표현합니다.
-- MS 949는 EUC-KR과의 차이점이 있어, 두 인코딩 방식 간에는 완전한 호환성이 없습니다.
-- 특히 MS 949는 한글 음절 조합 및 한글 자모 조합 규칙에 따라 한글을 표현하는데,
EUC-KR과는 다른 방식을 사용합니다.

각각의 인코딩 방식은 주로 해당 시스템에서의 표준 인코딩으로 사용되며, 다른 시스템 간에는 호환성 문제가 발생할 수 있습니다.
최근에는 UTF-8이나 UTF-16과 같은 유니코드 기반의 문자 인코딩이 국제적으로 표준화되어 사용되고 있어,
다양한 언어를 효과적으로 다룰 수 있습니다.

UTF - 8

대체로 유니코드와 UTF 인코딩 방식을 같은 개념으로 생각하는데, 유니코드는 인코딩이 아니다. 유니코드는 전 세계의 모든 문자를 2bytes로 매핑한 방식의 코드표를 의미하고, 이 코드표를 컴퓨터가 이해할 수 있도록 하는 여러가지 인코딩 방식 중 하나가 UTF-8. UTF-16 등이다. (그래도 구분이 어렵다면 여기를 참조하자.)

UTF-8(Universal Coded Character Set + Transformation Format – 8 bit)은 유니코드를 위한 가변 길이 인코딩 방식이다. 쉽게 말하면 문자마다 byte 크기가 다르다는 것이다.

첫 128자는 ASCII 코드 값으로 ANSI와 UTF-8이 동일하다. 때문에 영어를 사용할 경우 1byte만 사용한다. 하지만 많은 유럽지역의 나라들과 중동지역의 나라들의 언어는 2bytes를 사용하며, 한국,일본,중국등 동아시아권 나라들의 언어는 3bytes 이상을 사용한다. UTF-8은 매우 일반적인 인코딩 방식이지만 3bytes 이상의 문자를 사용할 경우에는 비효율적일 수 있다.

UTF-16은 16bit 기반으로 저장하는 UTF-8의 변형이라고 보면 된다. 한글의 경우 UTF-8로 저장할 경우 3bytes가 필요한데, UTF-16로는 2bytes면 가능해서 용량의 이점이 있다. 그러나 특정한 경우에는 2bytes 이상을 사용하기도 해서 용량상의 큰 이점이 있다고 볼 수 없고 엔디언 처리를 고려함에 따른 복잡성 증대나 ANSI와 호환이 안되는 단점이 있다.

UTF-32는 모든 문자를 4bytes로 인코딩한다. 문자 변환 알고리즘이나 가변 길이 인코딩 방식에 대한 고민을 하고 싶지 않을 때 유용할 수 있다. 그러나 메모리 사용이 비효율적이라서 자주 사용되지는 않는다.

profile
기본부터 가면 됩니다.

0개의 댓글