유니코드 자체는 바이트의 개념이 아닙니다. 단순히 한 문자에 숫자 하나를 연결하는 개념이죠. 이것을 실제 바이트 단위로 저장하는 방식을 UTF-8, UTF-16 등으로 부르는 것입니다.
이중 UTF-8은 문자 하나당 저장되는 최소 단위가 8비트, 즉 1바이트입니다. UTF-16은 최소 단위가 2바이트이고요. 그리고 과거에 UCS-2라는 것이 있었는데, 모든 문자를 2바이트 고정으로 저장합니다. 따라서 2바이트를 넘어가는 문자들은 지원하지 못하는 방식으로 지금은 거의 사용되지 않는 방식이라고 생각하는 것이 좋습니다. (이것이 '유니코드는 2바이트다'는 잘못된 소문의 원인이기도 합니다)
UTF-8자체가 유니코드입니다.
즐린
유니코드 안에도 여러크드가 있는데.UTF-16 UTF-8등등
즉 일반적인 유니코드라면 유니코드전체를 말하는건지? 전체를 구현한건 아직까지는 없는거로 압니다.
즐린
인터넷을 떠돌다가 발견한 글을 발췌해봤습니다...
일반 유니코드(Unicode): 모든 글자를 2바이트로 표현합니다. 전세계 모든 글자들을 한꺼번에 표현할 수 있습니다. 인터넷에 HTML 파일로 올릴 수 없습니다. 즉 웹페이지 작성에 쓸 수 없습니다.
UTF-8 유니코드: 영문/숫자/기호는 1바이트로, 한글과 한자 등은 3바이트로 표현합니다. 전세계 모든 글자들을 한꺼번에 표현할 수 있습니다. 웹페이지 작성에 쓸 수 있습니다.
좀 예전
좀 예전 내용이네요.
유니코드는 1문자당 4바이트로 늘어났습니다.
중국의 옛날 한자라던지, 유로화 기호라던지.. 그런 내용들을 넣을 공간이 부족해(2byte가 다 차서) 늘릴 수 밖에 없었죠.
중국에서는 4바이트
중국에서는 4바이트 평면도 부족하다고 느끼고 있습니다. :-)
- CN의 낙서장 / HanIRC:#CN
- 죠커's blog / HanIRC:#CN
.
유니코드 자체는 바이트의 개념이 아닙니다. 단순히 한 문자에 숫자 하나를 연결하는 개념이죠. 이것을 실제 바이트 단위로 저장하는 방식을 UTF-8, UTF-16 등으로 부르는 것입니다.
이중 UTF-8은 문자 하나당 저장되는 최소 단위가 8비트, 즉 1바이트입니다. UTF-16은 최소 단위가 2바이트이고요. 그리고 과거에 UCS-2라는 것이 있었는데, 모든 문자를 2바이트 고정으로 저장합니다. 따라서 2바이트를 넘어가는 문자들은 지원하지 못하는 방식으로 지금은 거의 사용되지 않는 방식이라고 생각하는 것이 좋습니다. (이것이 '유니코드는 2바이트다'는 잘못된 소문의 원인이기도 합니다)
자바에서 지원이 어떻게 되는지는 자세히는 모르겠지만, String과 byte가 따로 구분되어 있고 String이 유니코드를 지원하는 것으로 알고 있습니다. http://www.jorendorff.com/articles/unicode/java.html 문서를 보면 유니코드 문자열과 byte[]간의 변환 방법이 나와 있네요.
윗분 말씀처럼,
윗분 말씀처럼, 유니코드는 문자 집합(character set)이고, UTF-8, UTF-16 같은 것들이 인코딩 방식입니다.
댓글 달기