상세 컨텐츠

본문 제목

Unicode,UTF

TOPIC

by oimb 2018. 6. 25. 17:55

본문

먼저 Unicode에 대해서 보면

Unicode


최초로 컴퓨터가 발명되고 오랜 기간 동안 발전되어 온 지역이 미국이기에 해당 지역에서 사용하는 언어의 문자 집합인 영어 알파벳과 이와 비슷한 문자 체계를 지닌 유럽어 알파벳 처리에 대한 연구가 가장 먼저 시작되었습니다. 이 외의 다른 문자 집합(character set)은 기존에 수립된 인코딩(영어 및 유럽어 문자 집합용)으로 표현하기에는 한계가 있었기 때문에 이들을 처리하기 위한 연구가 추가로 진행되었습니다.


- 전 세계의 모든 문자를 컴퓨터에서 일관되게 표현하고 다룰 수 있도록 설계된 표준

- 유니코드 협회에서 제정

- 유니코드란, 숫자와 글자, 즉 키와 값이 1:1로 매핑된 형태의 코드

- ISO 10646 문자 집합, 문자 인코딩 , 문자 정보 데이터베이스, 문자들을 다루기 위한 알고리즘 등을 포함 하고 있다


목적


- 기존 인코딩 방식은 다국적 환경에서 호환되지 않는 한계 존재

- 다양한 문자 집합들을 통합하는데 성공함 , 현존하는 문자 인코딩 방식을 모두 유니코드 방식으로 교체

 

기원 


- 1987년 조 베커 와 리 콜린스 , 마크 데이비스가 통일된 문자 집합을 만드는 것을 탐구함

- 1988년 유니코드라는 이름의 국제/다언어 문자 인코딩 시스템(international/multilingual text character encoding system, tentatively called Unicode)을 위한 초안 출판





utf에 대한 이미지 검색결과



UTF


UTF는 몇 비트단위로사용해서 index를 나타낼것인가를 말한다.

UTF-8은 8bit씩 늘려가며 index를 나타낼꺼라는거고,

UTF-16은 16bit씩 index를 나타낼꺼고, UTF-32는 32bit씩 index를 나타낼꺼라는거다.

( 실상 UTF-16과 UCS-2는 같다고 볼 수 있다. 마찬가지로 UTF-32와 UCS-4도 마찬가지다.  하지만 unicode 3.1에 오면서 달라 졌다. )


- Unicode Transformation Format ( 유니코드 변환 형식)

- UTF-7 , UTF-8 , UTF-16 , UTF - 32 를 포함 여러 유형의 유니 코드 문자 인코딩



목적


- 한 문자를 한 바이트로 가정하였던 기존의 7비트 또는 8비트 시스템과 멀티 바이트로 된 문자 세트(유니코드 2바이트)

간의 호환성 및 변환을 위해 만들어짐

- 가변 길이 문자 인코딩 방식으로 부호길이(비트수)에 따라  UTF-8, UTF-16, UTF 32 등이 있음


간단하게 UTF의 종류에 대해 간단히 설명 하자면


UTF-7 - 각 문자에 대해 7 비트를 사용합니다. 유니 코드(UTF-7 형태) 인코딩이 필요한 전자 메일 메시지의 ASCII 문자를 나타내도록 설계되었습니다.


UTF-8 - 가장 일반적인 유니 코드 인코딩 유형입니다. 표준 영어 문자 및 기호에는 1 바이트, 추가 라틴 및 중동 문자에는 2 바이트, 아시아 문자에는 3             바이트를 사용합니다. 추가 문자는 4 바이트를 사용하여 나타낼 수 있습니다. UTF-8은 처음 128자를 동일한 값으로 매핑하므로 ASCII와 역             호환됩니다.

UTF-16 - 처음에는 UTF-16으로 모든 문자를 나타낼 수 있었으나,

( 2byte로 표현할 수 있는 index를 가진 문자 목록을 BMP Basic Multilingual Plane 라고 부른다. )

유니코드 4.0이 나오면서, 2byte로는 0x10FFFF 같은 값을 가리킬 수 없게 되었다.


그래서 UTF-16으로는 BMP에 있는 문자들은 2byte로 처리하고,  

BMP보다 더 높은 index를 가지는 놈들은 4byte로 처리 한다.

문자 index 0x0000 부터 0xFFFF 까지는 2byte로 처리 하고

문자 index 0x10000 부터 0x1FFFF 까지는 4byte로 처리 된다.



UTF-32 - 각 문자를 4 바이트로 나타내는 멀티 바이트 인코딩입니다.


이 중 가장 일반적인 인코딩 유형인 UTF -8을 추가적으로 설명 하자면


UTF - 8


- Universal Coded Character Set +Transformation Format - 8 bit

- 유니코드를 위한 가변 길이 문자 인코딩 방식 중 하나로 , 켄 톰프슨과 롭파이크가 만듬

- 한 문자를 나타나는 데에 1~4 바이트까지를 사용 한다.

- 1바이트 영역은 아스키 코드와의 호환성



그리고 유니코드와 UTF-8 방식에는 차이가 있는데


1. 일반적으로 유니코드는 인터넷에 HTML 파일로 올리수 없으나 UTF-8은 웹페이지 작성에 사용할수 있다는 점

2. 유니코드에서는 문자열 길이 정보를 알수없지만 UTF -8 은 문자열 길이 정보를 알수있다. 이는 후에 디코딩과정에서 필요


정도가 있다.



유니코드와 UTF의 명확하게 차이는 알지 못했고 그냥 비슷한 정도로만 알고있었는데 

쓰임에 있어서 차이가 있다는 것을 알게 되었다.






'TOPIC' 카테고리의 다른 글

끄적끄적 REST API ? <1>  (0) 2019.03.12
IP address  (0) 2018.07.10
Call by Value or Reference in JAVA  (0) 2018.07.02
3-WAY Handshake  (0) 2018.06.27
BASE64  (0) 2018.06.25

관련글 더보기