"문자셋 character set"의 두 판 사이의 차이
DB CAFE
(→ANSI) |
|||
1번째 줄: | 1번째 줄: | ||
== 문자셋 , 캐릭터셋 (character set) == | == 문자셋 , 캐릭터셋 (character set) == | ||
=== ANSI === | === ANSI === | ||
+ | * 미국 국립 표준 협회(American National Standards Institute, ANSI) 미국의 산업 표준을 제정하는 민간단체이며, 국제표준화기구 ISO에 가입되어 있다. * ANSI에서 제정된 표준을 ANSI라고 부르기도 한다. | ||
+ | * 1918년 AESC란 이름으로 창설되었으나,1928년 ASA(American Standards Association)로 이름이 변경되다가 1969년 현재 이름인 ANSI로 변경되었다. | ||
+ | * ANSI가 제정한 표준 중 가장 유명한 것이 ASCII 코드다. | ||
=== KO16KSC5601 === | === KO16KSC5601 === |
2024년 3월 25일 (월) 13:57 판
thumb_up 추천메뉴 바로가기
- DBA { Oracle DBA 명령어 > DBA 초급 과정 > DBA 고급 과정 }
- 튜닝 { 오라클 튜닝 목록 }
- 모델링 { 데이터 모델링 가이드 }
목차
1 문자셋 , 캐릭터셋 (character set)[편집]
1.1 ANSI[편집]
- 미국 국립 표준 협회(American National Standards Institute, ANSI) 미국의 산업 표준을 제정하는 민간단체이며, 국제표준화기구 ISO에 가입되어 있다. * ANSI에서 제정된 표준을 ANSI라고 부르기도 한다.
- 1918년 AESC란 이름으로 창설되었으나,1928년 ASA(American Standards Association)로 이름이 변경되다가 1969년 현재 이름인 ANSI로 변경되었다.
- ANSI가 제정한 표준 중 가장 유명한 것이 ASCII 코드다.
1.2 KO16KSC5601[편집]
- 한글 완성형 코드와 일치하며 일반적으로 많이 사용되는 2350자의 한글, 4888자의 한자와 히라카나, 카타카나, 그리고 영문 및 각종 기호들을 포함.
1.3 KO16MSWIN949[편집]
- MS사의 Windows Codepage 949번, 한글 코드 페이지를 따른 코드셋이 완성형(KO16KSC5601)을 포함하고 있으며, 추가로 현대 한글 조합으로 표현 할 수 있는 모든 가짓수에 해당하는 8822자의 한글을 추가해 포함하고 있다.
- KO16MSWIN949가 KO16KSC5601를 포함하고 있다고 봐도 무방함
- DB 마이그레이션 작업시 KO16KSC5601을 KO16MSWIN949 로 마이그레이션 할때는 크게 문제 되지 않음
- 반면, 반대로 작업 시에는 문제가 발생 할수 있음. 표기 할수 있는 글자 수의 차이 때문.
1.4 UTF8[편집]
- UTF8은 3byte 기준으로 문자열 저장
- 데이터 범위는 U+9999까지
- 그외 보충 문자열(Supplementary characters, 보조 문자) 는 U+ 10000에서 U+ 10FFFF까지 코드 포인트가 할당 된 문자까지 저장할 수 있는 타입
1.5 UTF8과 AL32UTF8 차이점[편집]
- AL32UTF8 은 U+ FFFF( 3byte 표현) 보다 큰 유니 코드 문자
- Compatibility Encoding Scheme for UTF-16: 8-Bit (CESU-8) 라고 표현
- AL32UTF8에 저장할 수 있는 4byte 문자에는 대표적으로 한자와 이모지가 있다.
- U + 2070E : 𠜎
- U+1F601 : 😁
1.5.1 UTF8 vs AL32UTF8 비교표[편집]
구분 | UTF8 | AL32UTF8 |
---|---|---|
UNICODE Version | 2.1 ~ 3.0 | 3.0~3.1 |
Oracle Version | 8.0 ~ 9l | >= 9i |
Unicode Encoding | UTF8 | UTF8 |
보충, 보조문자열(Supplementary characters)지원 | X | O |
oracle 8i 이하 client 지원 | O | X |
가변넓이 | 1~3byte | 1~4byte |
- 특이사항.
- UTF8 -> AL32UTF8 Datadump로 이관 시 에러 발생, DataPump Export/Import 사용 필요.AL32UTF8를 이용할 때 이런 보충, 보조문자열을 지원하는지 테스트 하는 것이 중요
- 실제 DB를 이용하는 어플리케이션( 프로그램/시스템 ) 에 문제가 없는지 확인이 필요
- 참고로 mysql, mariadb에서 이런 문자셋을 utf8, utf8mb4라고 표현 함
2 문자셋에 따른 한글 정렬[편집]
2.1 KO16KSC5601에서 한글 정렬[편집]
- KO16KSC5601 에서는 한글 2350자의 바이너리 정렬 순서가 한글의 언어적 정렬 방식과 동일하다.
- 따라서, 단순히 Order by 명령만으로 정렬의 효과를 거둘 수 있다.
- 한자의 경우 한글 뒤에 한자의 음에 맞게 정렬이 된다.
이것은 단지 한글 2350자들과 한자 4888자의 정렬일뿐이며, 나머지 글자들에 대해서는 입출력도 불가능하다.
2.2 KO16MSWIN949에서 한글 정렬[편집]
- KO16MSWIN949 는 KO16KSC5601에서 지원되지 않는 8822자의 한글을 추가적으로 지원한다는 점에 KO16KSC5601의 대안으로 자주 이용되는 Character Set이다.
- 하지만, 총 11172자의 한글의 바이트 코드가 한글의 언어적 정렬 순서와 불일치 한다.
2.3 UTF8/AL32UTF8에서 한글 정렬[편집]
- UTF8 데이터베이스의 경우, 한글만을 고려하면 별다른 정렬 옵션이 필요없다. 왜냐하면 한글 11172자의 정렬 순서와 바이트 코드 정렬 순서가 일치하기 때문이다.
- 그러나 한자를 포함한다면 한자->한글 식으로 정렬이 된다.