UTF-EBCDIC
UTF-EBCDUTF-EBCDIC은 1~5바이트(8비트)의 코드 단위를 사용하여 Unicode의 모든 1,112,064개의 유효한 문자 코드 포인트를 부호화할 수 있는 문자 인코딩입니다(UTF-8의 [1]경우 최대 4개).메인프레임의 레거시 EBCDIC 응용 프로그램이 문자를 쉽게 처리할 수 있도록 EBCDIC 친화적입니다.기존 EBCDIC 기반 시스템의 장점은 기존 ASCII 기반 시스템의 UTF-8의 장점과 유사합니다.UTF-EBCDIC에 대한 자세한 내용은 Unicode Technical Report #16에 정의되어 있습니다.
일련의 Unicode 코드 포인트의 UTF-EBCDIC 부호화 버전을 작성하려면 먼저 UTF-8(사양에서는 UTF-8-Mod)에 근거한 부호화가 적용됩니다(사양에서는 I8 시퀀스라고 부릅니다).이 인코딩과 UTF-8의 주요 차이점은 Unicode 코드 포인트 U+0080 ~ U+009F(C1 제어 코드)를 단일 바이트로 나타내, 나중에 대응하는 EBCDIC 제어 코드에 매핑할 수 있다는 것입니다.이를 실현하기 위해 UTF-8-Mod는 멀티바이트시퀀스 내의 바이트 후행 포맷으로 10XXXXXX가 아닌 101XXXXXX를 사용합니다.이것은 6비트가 아닌5비트밖에 유지할 수 없기 때문에 U+03FF 이상의 코드 포인트의 UTF-8-Mod 부호화는 UTF-8 부호화보다 큽니다.
UTF-8-Mod 변환에서는 데이터가 ASCII 기반 포맷(예를 들어 U+0041 "A"는 여전히 01000001로 인코딩됨)으로 남습니다.따라서 각 바이트는 가역적(1 대 1) 룩업테이블을 통해 공급되어 최종 UTF-EBCDIC 인코딩이 생성됩니다.예를 들어 이 표의 01000001은 11000001에 매핑되므로 U+0041(Unicode의 "A")의 UTF-EBCDIC 인코딩은 0xC1(EBCDIC의 "A")입니다.
이 인코딩 형식은 설계 대상인 EBCDIC 기반 메인프레임에서도 거의 사용되지 않습니다.z/OS와 같은 IBM EBCDIC 기반 메인프레임 운영 체제는 완전한 Unicode 지원을 위해 일반적으로 UTF-16을 사용합니다.예를 들어 IBM DB2, COBOL, PL/I, Java 및 IBM XML 툴킷은 IBM 메인프레임에서 UTF-16을 지원합니다.
코드 페이지 레이아웃
UTF-EBCDIC에서는 싱글바이트 인코딩을 사용하는 문자가 160개 있습니다(UTF-8에서는 128개).보시는 바와 같이 각 괄호의 위치 때문에 싱글바이트 부분은 IBM-37이 아닌 IBM-1047과 유사합니다.CCSID37은 각각 16진수 AD 및 BD가 아닌 16진수 BA 및 BB에 []를 가진다.
UTF-EBCDIC | ||||||||||||||||
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F | |
0x | 없음 | SOH | STX | ETX | 세인트 | HT | SSA | 델 | EPA | 리 | SS2 | VT | FF | CR | 그렇게 | SI |
1배 | DLE | DC1 | DC2 | DC3 | OSC | LF | BS | ESA | 할 수 있다 | 전자파 | PU2 | SS3 | FS | GS | RS | 미국 |
2배 | 패드 | 홉 | BPH | NBH | IND | NEL | ETB | ESC | HTS | HTJ | VTS | PLD | PLU | ENQ | ACK | 벨 |
3배 | DCS | PU1 | 동기 | STS | CCH | MW | SPA | 전원 | SOS | SGCI | SCI | CSI | DC4 | NAK | PM | 후보선수 |
4배 | SP | • | • | • | • | • | • | • | • | • | • | . | < > | ( | + | |
5배 | & | • | • | • | • | • | • | • | • | • | ! | $ | * | ) | ; | ^ |
6배 | - | / | • | • | • | • | • | • | • | • | • | , | % | _ | > | ? |
7배 | • | • | • | • | 2 | 2 | 2 | 2 | 2 | ` | : | # | @ | ' | = | " |
8배 | 2 | a | b | c | d | e | f | g | h | i | 2 | 2 | 2 | 2 | 2 | 2 |
9배 | 2 | j | k | l | m | n | o | p | q | r | 2 | 2 | 2 | 2 | 2 | 2 |
도끼 | 2 | ~ | s | t | u | v | w | x | y | z | 2 | 2 | 2 | [ | 2 | 2 |
Bx | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 3 | 3 | 3 | 3 | 3 | 3 | ] | 3 | 3 |
Cx | { | A | B | C | D | E | F | G | H | I | 3 | 3 | 3 | 3 | 3 | 3 |
Dx | } | J | K | L | M | N | O | P | Q | R | 3 | 3 | 4 | 4 | 4 | 4 |
예 | \ | 4 | S | T | U | V | W | X | Y | Z | 4 | 4 | 4 | 5 | 5 | |
Fx | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | APC |
Oracle UTFE
Oracle UTFE는 Unicode 3.0 UTF-8 Oracle 데이터베이스 바리에이션입니다.UTF-8의 CESU-8 바리안트와 비슷합니다.보충문자는 1개의 4바이트 문자 또는5바이트 문자가 아닌 2개의 4바이트 문자로 인코딩됩니다.EBCDIC [2]플랫폼에서만 사용됩니다.
장점:
- EBCDIC의 Unicode 문자 세트만.
- SQL CHAR 유형의 길이는 문자 수로 지정할 수 있습니다.
- 데이터가 동일한 보조 문자로 구성된 경우 SQL CHAR 열의 이진 순서는 SQL NCHAR 열의 이진 순서와 동일합니다.따라서 이러한 열은 동일한 [2]문자열에 대해 동일하게 정렬됩니다.
단점:
- 보조 문자는 4바이트가 아닌 6바이트를 차지합니다.따라서 보조 문자를 변환해야 합니다.
- UTFE는 Unicode 표준 인코딩이 아닙니다.UTF-8 인코딩을 필요로 하는 클라이언트는 취득 및 [2]저장 시 데이터를 변환해야 합니다.
Mksh nega-UTF-8
Mksh는 "utf8-mode"를 가진 POSIX 쉘로 EBCDIC에 대한 포팅을 복잡하게 만듭니다.개발자는 UTF-EBCDIC를 구현하는 대신 일반 UTF-8을 사용하여 EBCD로 변환하는 것이 더 쉽다는 것을 알게 되었습니다.IC는 현재 코드 페이지의 "확장 ASCII" 인코딩인 것처럼 가장합니다.단,[3] ASCII에서 찾을 수 없는EBCDIC 제어문자는 파기됩니다.
「 」를 참조해 주세요.
레퍼런스
- ^ "UTR #16: UTF-EBCDIC". www.unicode.org. Retrieved 2021-02-23.
You need to search at most five bytes (seven bytes, if the full range of 31 bits of ISO/IEC 10646 is considered) backwards
- ^ a b c Baird, Cathy; Chiba, Dan; Chu, Winson; Fan, Jessica; Ho, Claire; Law, Simon; Lee, Geoff; Linsley, Peter; Matsuda, Keni; Oscroft, Tamzin; Takeda, Shige; Tanaka, Linus; Tozawa, Makoto; Trute, Barry; Tsujimoto, Mayumi; Wu, Ying; Yau, Michael; Yu, Tim; Wang, Chao; Wong, Simon; Zhang, Weiran; Zheng, Lei; Zhu, Yan; Moore, Valarie (2002) [1996]. "Appendix A: Locale Data". Oracle9i Database Globalization Support Guide (PDF) (Release 2 (9.2) ed.). Oracle Corporation. Oracle A96529-01. Archived (PDF) from the original on 2017-02-14. Retrieved 2017-02-14.
- ^ "MirBSD/MKSH". GitHub. 4 November 2021.
EBCDIC interacts with utf8-mode in a special way: UTF-EBCDIC is not used by anyone, we cannot use UCS-2/4 in the shell, so “nega-UTF-8”, a scheme in which UTF-8 calculations are done on the octets converted per the current EBCDIC codepage to “extended ASCII”.
외부 링크
- V.S. Umamaheswaran, Unicode 기술 보고서 #16: UTF-EBCDIC의 정의(2002-04-16)