일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 모바일레전드
- 임바 오토체스
- Python
- 오라클
- english study
- 롤
- 왕좌의게임
- java program
- OGGMA
- 오큘러스
- 영어공부
- 여행
- 심플한 게임
- 골든게이트
- 영어독해
- 게임기
- 이솝우화
- Mobile Legends
- Imba Auto Chess
- 영어유머
- 영어 유머
- English Joke
- MLBB
- 독해연습
- Chess-TD
- oracle
- 가볼만한곳
- 체스-TD
- 관광
- 게임
- Today
- Total
Almost-Native
Oracle 유니코드 지원, UTF-8, UTF-16, UCS-2 인코딩 차이, 캐릭터셋 본문
Oracle 유니코드 지원, UTF-8, UTF-16, UCS-2 인코딩 차이, 캐릭터셋
2020. 12. 11. 23:00유니코드(Unicode)는 전세계 언어를 코드로 표현하기 위해 유니코드 콘소시엄(http://www.unicode.org)에서 관리되고 있습니다.
이 콘소시엄에서 가급적 많은 언어를 포함시키면서 버전을 관리하고 있습니다.
Unicode 1.0 -> Unicode 2.0 -> Unicode 3.0 -> Unicode 4.0 -> ....
유니코드는 문자에 부여된 숫자코드입니다.
영어문자 'A' 의 유니코드는 0x41(십진수 65) 이고,
한글문자 '한' 의 유니코드는 0xED959C (십진수 15570332) 입니다.
영어로는 1 바이트만 있으면 되는데, 한글은 3 바이트가 필요합니다.
이런 차이때문에 얘네들을 모두 같은 크기로 저장할 것인지, 서로 다른 크기로 저장할 것인지에 따라 인코딩(Encoding) 방식이 여러가지가 나오게 되었습니다.
모두 같은 크기로 저장하는 방식이 UCS-2 이고,
가변크기로 저장하는 방식이 UTF-8 과 UTF-16 입니다.
UCS-2 인코딩 방식은 한글이고, 영문이고 모두 2 바이트에 때려넣는 방식입니다.
윈도우즈, Java 에서 이 방식을 사용합니다.
UTF-16 인코딩 방식은 UCS-2 의 확장버전입니다.
UCS-2 처럼 2 바이트에 저장하는데, 일부 특수문자들 .. Supplementary Characters 라고 하는데...
이 안에는 요런 😒👌🤷♂️💋 이미지들도 문자로 들어가 있습니다.
Supplementary Characters 들에 대한 전체 코드를 보려면 아래 URL을 참조하세요
▶ 참조) https://design215.com/toolbox/utf8-4byte-characters.php
UTF-8 인코딩 방식은 가변길이 인코딩 방식입니다.
알파벳의 경우에는 1 바이트에 저장하고, 유럽문자들이 2 바이트, 한글의 경우에는 3 바이트를 사용합니다.
그리고, 위에서 언급한 Supplementary Characters 들은 4 바이트를 사용해서 저장하는 방식입니다.
UTF-8 인코딩 방식은 UNIX 시스템, HTML, 브라우저 등에서 주로 사용됩니다.
위 SQL문을 실행한 DB는 AL32UTF-8 인코딩을 사용하고 있는데,
영어문자 'A' 는 1 바이트로 나오고, Supplementary Character '😁' 는 4 바이트로 나오는 것을 확인할 수 있습니다.
오라클은 UTF-8 인코딩방식을 지원하는 캐릭터셋(Character Set)으로 UTF8 과 AL32UTF8 이 있습니다.
UTF8 과 AL32UTF8 의 차이는 4바이트짜리 Supplementary Characters 을 지원하는 지의 차이입니다.
자신의 DB가 어떤 캐릭터셋을 사용하는 지는 아래와 같이 조회할 수 있습니다.
SQL> select sys_context('userenv', 'language') from dual;
SYS_CONTEXT('USERENV','LANGUAGE')
----------------------------------------------------------------------------------------------------
AMERICAN_AMERICA.AL32UTF8
'Java 프로그램 개발, IT' 카테고리의 다른 글
오라클 Directory 생성/삭제/변경, 권한부여 (grant) (0) | 2020.12.12 |
---|---|
오라클 DB에서 유니코드 UTF-8 코드값으로 한글 출력하기 (0) | 2020.12.12 |
오라클 16진수/10진수 변환 (hexa / decimal convert) (0) | 2020.12.11 |
리그오브레전드 Wild Rift 스마트폰 게임 못하게 막는 방법 (포트 차단) (2) | 2020.11.28 |
솔라리스11 dns 에러 - (nslookup) connection timed out; no servers could be reached (0) | 2020.11.27 |