Code page 950#Private Use Area usage
{{Short description|Windows character set for Traditional Chinese}}
{{infobox character encoding
|name = Code page 950
|image = Code-page-950.svg
|caption = Code page 950 layout as implemented by Microsoft (top, MS-950 or IBM-1373) and IBM (bottom, IBM-950).
|extends = Big5
|basedon = Big5-ETen
|lang = Traditional Chinese
|by = Microsoft
}}
Code page 950 is the code page used on Microsoft Windows for Traditional Chinese. It is Microsoft's implementation of the de facto standard Big5 character encoding. The code page is not registered with IANA,{{cite web|url=https://www.iana.org/assignments/character-sets|title=Character Sets|work=IANA — Protocol Registries}} and hence, it is not a standard to communicate information over the internet, although it is usually labelled simply as {{code|big5}}, including by Microsoft library functions.{{cite web|url=https://msdn.microsoft.com/en-us/library/system.text.encoding.windowscodepage(v=vs.110).aspx |title=Encoding.WindowsCodePage Property - .NET Framework (current version) |work=MSDN |publisher=Microsoft}}
Terminology and variants
The major difference between Windows code page 950 and "common" (non-vendor-specific) Big5 is the incorporation of a subset of the ETEN extensions to Big5 at 0xF9D6 through 0xF9FE (comprising the seven Chinese characters 碁, 銹, 裏, 墻, 恒, 粧, and 嫺, followed by 34 box drawing characters and block elements). The ranges used by some of the other ETEN extended characters are instead defined as end-user defined (private use) characters.{{citation|mode=cs1 |id=
IBM's CCSID 950 comprises single byte code page 1114 (CCSID 1114) and double byte code page 947 (CCSID 947),{{cite web|title=CCSID 950 information document|archive-url=https://web.archive.org/web/20141202001630/http://www-01.ibm.com/software/globalization/ccsid/ccsid950.html|archive-date=2014-12-02|url=http://www-01.ibm.com/software/globalization/ccsid/ccsid950.html}}{{cite web|title=CCSID 1114 information document|archive-url=https://web.archive.org/web/20160327100728/http://www-01.ibm.com/software/globalization/ccsid/ccsid1114.html|archive-date=2016-03-27|url=http://www-01.ibm.com/software/globalization/ccsid/ccsid1114.html}}{{cite web|title=CCSID 947 information document|archive-url=https://web.archive.org/web/20141201232116/http://www-01.ibm.com/software/globalization/ccsid/ccsid947.html|archive-date=2014-12-01|url=http://www-01.ibm.com/software/globalization/ccsid/ccsid947.html}} and, while also a Big5 variant, is somewhat different from Microsoft's code page 950, incorporating some of the ETEN extensions for lead bytes 0xA3,{{cite web |url=https://demo.icu-project.org/icu-bin/convexp?conv=ibm-950_P110-1999&b=A3&s=ALL#layout |title=Lead byte A3: ibm-950_P110-1999 |work=ICU Demonstration - Converter Explorer |publisher=International Components for Unicode}} 0xC6,{{cite web |url=https://demo.icu-project.org/icu-bin/convexp?conv=ibm-950_P110-1999&b=C6&s=ALL#layout |title=Lead byte C6: ibm-950_P110-1999 |work=ICU Demonstration - Converter Explorer |publisher=International Components for Unicode}} 0xC7{{cite web |url=https://demo.icu-project.org/icu-bin/convexp?conv=ibm-950_P110-1999&b=C7&s=ALL#layout |title=Lead byte C7: ibm-950_P110-1999 |work=ICU Demonstration - Converter Explorer |publisher=International Components for Unicode}} and 0xC8,{{cite web |url=https://demo.icu-project.org/icu-bin/convexp?conv=ibm-950_P110-1999&b=C8&s=ALL#layout |title=Lead byte C8: ibm-950_P110-1999 |work=ICU Demonstration - Converter Explorer |publisher=International Components for Unicode}} while omitting those with lead byte 0xF9 (which Microsoft includes), mapping them instead to the Private Use Area as user-defined characters.{{cite web |url=https://demo.icu-project.org/icu-bin/convexp?conv=ibm-950_P110-1999&b=F9&s=ALL#layout |title=Lead byte F9: ibm-950_P110-1999 |work=ICU Demonstration - Converter Explorer |publisher=International Components for Unicode}} It also includes two non-ETEN extension regions with trail bytes 0x81–A0, i.e. outside the usual Big5 trail byte range but similar to the Big5+ trail byte range: area 5 has lead bytes 0xF2–F9 and contains IBM-selected characters, while area 9 has lead bytes 0x81–8C and is a user-defined region.{{cite web |url=https://public.dhe.ibm.com/as400/products/clientaccess/win32/files/globalization/T_Chinese_big51999.pdf |title=IBM Traditional Chinese Graphic Character Set for IBM BIG-5 Code |publisher=IBM |year=1999 |id=C-H 3-3220-131 1999-04}}
Microsoft updated their version of code page 950 in 2000, adding the euro sign (€) at the double-byte code 0xA3E1. IBM refers to the euro sign update of their Big-5 variant as CCSID 1370 (which includes both single-byte (0x80) and double-byte euro signs).{{cite web|title=CCSID 1370 information document|archive-url=https://web.archive.org/web/20160327104212/http://www-01.ibm.com/software/globalization/ccsid/ccsid1370.html|archive-date=2016-03-27|url=http://www-01.ibm.com/software/globalization/ccsid/ccsid1370.html}} It comprises single byte code page 1114 (CCSID 5210) and double byte code page 947 (CCSID 21427).{{cite web|title=CCSID 5210 information document|archive-url=https://web.archive.org/web/20141129231704/http://www-01.ibm.com/software/globalization/ccsid/ccsid5210.html|archive-date=2014-11-29|url=http://www-01.ibm.com/software/globalization/ccsid/ccsid5210.html}}{{cite web|title=CCSID 21427 information document|archive-url=https://web.archive.org/web/20160327035914/http://www-01.ibm.com/software/globalization/ccsid/ccsid21427.html|archive-date=2016-03-27|url=http://www-01.ibm.com/software/globalization/ccsid/ccsid21427.html}}
For better compatibility with Microsoft's variant in IBM Db2, IBM also define the pure double-byte Code page 1372{{cite web |archive-url=https://web.archive.org/web/20160317015819/http://www-01.ibm.com/software/globalization/cp/cp01372.html |archive-date=2016-03-17 |url=http://www-01.ibm.com/software/globalization/cp/cp01372.html |url-status=dead |title=CPGID 01372: MS T-Chinese Big-5 (Special for DB2) |work=IBM Globalization - Code page identifiers}} and associated variable-width CCSID 1373, which includes only the double-byte euro sign{{cite web |url=http://icu-project.org/icu-bin/convexp?conv=ibm-1373_P100-2002 |title=ibm-1373_P100-2002 |work=ICU Demonstration - Converter Explorer |publisher=International Components for Unicode}} and matches Microsoft behaviour in which extension regions are included.{{cite web |url=https://demo.icu-project.org/icu-bin/convexp?conv=ibm-1373_P100-2002&b=A3&s=ALL#layout |title=Lead byte A3: ibm-1373_P100-2002 |work=ICU Demonstration - Converter Explorer |publisher=International Components for Unicode}}{{cite web |url=https://demo.icu-project.org/icu-bin/convexp?conv=ibm-1373_P100-2002&b=C6&s=ALL#layout |title=Lead byte C6: ibm-1373_P100-2002 |work=ICU Demonstration - Converter Explorer |publisher=International Components for Unicode}}{{cite web |url=https://demo.icu-project.org/icu-bin/convexp?conv=ibm-1373_P100-2002&b=C7&s=ALL#layout |title=Lead byte C7: ibm-1373_P100-2002 |work=ICU Demonstration - Converter Explorer |publisher=International Components for Unicode}}{{cite web |url=https://demo.icu-project.org/icu-bin/convexp?conv=ibm-1373_P100-2002&b=C8&s=ALL#layout |title=Lead byte C8: ibm-1373_P100-2002 |work=ICU Demonstration - Converter Explorer |publisher=International Components for Unicode}}{{cite web |url=https://demo.icu-project.org/icu-bin/convexp?conv=ibm-1373_P100-2002&b=F9&s=ALL#layout |title=Lead byte F9: ibm-1373_P100-2002 |work=ICU Demonstration - Converter Explorer |publisher=International Components for Unicode}}
{{anchor|CP1114}}Single byte codes
The following are the single-byte graphical characters included by IBM. The codes 0x00 though 0x1F and 0x7F may be used for C0 control codes instead, depending on context (compare code page 437, code page 897). As noted above, the single-byte euro sign at 0x80 is not included in IBM CCSIDs 950 or 1373, nor by Microsoft.
{{chset-table-header1|Code page 1114{{Citation|title=Code Page CPGID 01114 (pdf)|url=https://public.dhe.ibm.com/software/globalization/gcoc/attachments/CP01114.pdf|publisher=IBM}}{{Citation|title=Code Page CPGID 01114 (txt)|url=https://public.dhe.ibm.com/software/globalization/gcoc/attachments/CP01114.txt|publisher=IBM}}}} | |
{{chset-left1|0x}}
|{{chset-cell1 | |style=background:#DDD}}
|{{chset-cell1|U+263A WHITE SMILING FACE|☺}} |{{chset-cell1|U+263B BLACK SMILING FACE|☻}} |{{chset-cell1|U+2665 BLACK HEART SUIT|♥}} |{{chset-cell1|U+2666 BLACK DIAMOND SUIT|♦}} |{{chset-cell1|U+2663 BLACK CLUB SUIT|♣}} |{{chset-cell1|U+2660 BLACK SPADE SUIT|♠}} |{{chset-cell1|U+2022 BULLET|•}} |{{chset-cell1|U+25D8 INVERSE BULLET|◘}} |{{chset-cell1|U+25CB WHITE CIRCLE|○}} |{{chset-cell1|U+25D9 INVERSE WHITE CIRCLE|◙}} |{{chset-cell1|U+2642 MALE SIGN|♂}} |{{chset-cell1|U+2640 FEMALE SIGN|♀}} |{{chset-cell1|U+266A EIGHTH NOTE|♪}} |{{chset-cell1|U+266B BEAMED EIGHTH NOTES|♫}} |{{chset-cell1|U+263C WHITE SUN WITH RAYS|☼}} |
{{chset-left1|1x}}
|{{chset-cell1|U+25BA BLACK RIGHT-POINTING POINTER|►}} |{{chset-cell1|U+25C4 BLACK LEFT-POINTING POINTER|◄}} |{{chset-cell1|U+2195 UP DOWN ARROW|↕}} |{{chset-cell1|U+203C DOUBLE EXCLAMATION MARK|‼}} |{{chset-cell1|U+00B6 PILCROW SIGN|¶}} |{{chset-cell1|U+00A7 SECTION SIGN|§}} |{{chset-cell1|U+25AC BLACK RECTANGLE|▬}} |{{chset-cell1|U+21A8 UP DOWN ARROW WITH BASE|↨}} |{{chset-cell1|U+2191 UPWARDS ARROW|↑}} |{{chset-cell1|U+2193 DOWNWARDS ARROW|↓}} |{{chset-cell1|U+2192 RIGHTWARDS ARROW|→}} |{{chset-cell1|U+2190 LEFTWARDS ARROW|←}} |{{chset-cell1|U+221F RIGHT ANGLE|∟}} |{{chset-cell1|U+2194 LEFT RIGHT ARROW|↔}} |{{chset-cell1|U+25B2 BLACK UP-POINTING TRIANGLE|▲}} |{{chset-cell1|U+25BC BLACK DOWN-POINTING TRIANGLE|▼}} | |
{{chset-left1|2x}}
|{{chset-ctrl1|U+0020 SPACE| SP }} |{{chset-cell1|U+0021 EXCLAMATION MARK|!}} |{{chset-cell1|U+0022 QUOTATION MARK|"}} |{{chset-cell1|U+0023 NUMBER SIGN|#}} |{{chset-cell1|U+0024 DOLLAR SIGN|$}} |{{chset-cell1|U+0025 PERCENT SIGN|%}} |{{chset-cell1|U+0026 AMPERSAND|&}} |{{chset-cell1|U+0027 APOSTROPHE|'}} |{{chset-cell1|U+0028 LEFT PARENTHESIS|(}} |{{chset-cell1|U+0029 RIGHT PARENTHESIS|)}} |{{chset-cell1|U+002A ASTERISK|*}} |{{chset-cell1|U+002B PLUS SIGN|+}} |{{chset-cell1|U+002C COMMA|,}} |{{chset-cell1|U+002D HYPHEN-MINUS|-}} |{{chset-cell1|U+002E FULL STOP|.}} |{{chset-cell1|U+002F SOLIDUS|/}} | |
{{chset-left1|3x}}
|{{chset-cell1|U+0030 DIGIT ZERO|0}} |{{chset-cell1|U+0031 DIGIT ONE|1}} |{{chset-cell1|U+0032 DIGIT TWO|2}} |{{chset-cell1|U+0033 DIGIT THREE|3}} |{{chset-cell1|U+0034 DIGIT FOUR|4}} |{{chset-cell1|U+0035 DIGIT FIVE|5}} |{{chset-cell1|U+0036 DIGIT SIX|6}} |{{chset-cell1|U+0037 DIGIT SEVEN|7}} |{{chset-cell1|U+0038 DIGIT EIGHT|8}} |{{chset-cell1|U+0039 DIGIT NINE|9}} |{{chset-cell1|U+003A COLON|:}} |{{chset-cell1|U+003B SEMICOLON|;}} |{{chset-cell1|U+003C LESS-THAN SIGN|<}} |{{chset-cell1|U+003D EQUALS SIGN|=}} |{{chset-cell1|U+003E GREATER-THAN SIGN|>}} |{{chset-cell1|U+003F QUESTION MARK|?}} | |
{{chset-left1|4x}}
|{{chset-cell1|U+0040 COMMERCIAL AT|@}} |{{chset-cell1|U+0041 LATIN CAPITAL LETTER A|A}} |{{chset-cell1|U+0042 LATIN CAPITAL LETTER B|B}} |{{chset-cell1|U+0043 LATIN CAPITAL LETTER C|C}} |{{chset-cell1|U+0044 LATIN CAPITAL LETTER D|D}} |{{chset-cell1|U+0045 LATIN CAPITAL LETTER E|E}} |{{chset-cell1|U+0046 LATIN CAPITAL LETTER F|F}} |{{chset-cell1|U+0047 LATIN CAPITAL LETTER G|G}} |{{chset-cell1|U+0048 LATIN CAPITAL LETTER H|H}} |{{chset-cell1|U+0049 LATIN CAPITAL LETTER I|I}} |{{chset-cell1|U+004A LATIN CAPITAL LETTER J|J}} |{{chset-cell1|U+004B LATIN CAPITAL LETTER K|K}} |{{chset-cell1|U+004C LATIN CAPITAL LETTER L|L}} |{{chset-cell1|U+004D LATIN CAPITAL LETTER M|M}} |{{chset-cell1|U+004E LATIN CAPITAL LETTER N|N}} |{{chset-cell1|U+004F LATIN CAPITAL LETTER O|O}} | |
{{chset-left1|5x}}
|{{chset-cell1|U+0050 LATIN CAPITAL LETTER P|P}} |{{chset-cell1|U+0051 LATIN CAPITAL LETTER Q|Q}} |{{chset-cell1|U+0052 LATIN CAPITAL LETTER R|R}} |{{chset-cell1|U+0053 LATIN CAPITAL LETTER S|S}} |{{chset-cell1|U+0054 LATIN CAPITAL LETTER T|T}} |{{chset-cell1|U+0055 LATIN CAPITAL LETTER U|U}} |{{chset-cell1|U+0056 LATIN CAPITAL LETTER V|V}} |{{chset-cell1|U+0057 LATIN CAPITAL LETTER W|W}} |{{chset-cell1|U+0058 LATIN CAPITAL LETTER X|X}} |{{chset-cell1|U+0059 LATIN CAPITAL LETTER Y|Y}} |{{chset-cell1|U+005A LATIN CAPITAL LETTER Z|Z}} |{{chset-cell1|U+005B LEFT SQUARE BRACKET|[}} |{{chset-cell1|U+005C REVERSE SOLIDUS|\}} |{{chset-cell1|U+005D RIGHT SQUARE BRACKET|]}} |{{chset-cell1|U+005E CIRCUMFLEX ACCENT|^}} |{{chset-cell1|U+005F LOW LINE|_}} | |
{{chset-left1|6x}}
|{{chset-cell1|U+0060 GRAVE ACCENT|`}} |{{chset-cell1|U+0061 LATIN SMALL LETTER A|a}} |{{chset-cell1|U+0062 LATIN SMALL LETTER B|b}} |{{chset-cell1|U+0063 LATIN SMALL LETTER C|c}} |{{chset-cell1|U+0064 LATIN SMALL LETTER D|d}} |{{chset-cell1|U+0065 LATIN SMALL LETTER E|e}} |{{chset-cell1|U+0066 LATIN SMALL LETTER F|f}} |{{chset-cell1|U+0067 LATIN SMALL LETTER G|g}} |{{chset-cell1|U+0068 LATIN SMALL LETTER H|h}} |{{chset-cell1|U+0069 LATIN SMALL LETTER I|i}} |{{chset-cell1|U+006A LATIN SMALL LETTER J|j}} |{{chset-cell1|U+006B LATIN SMALL LETTER K|k}} |{{chset-cell1|U+006C LATIN SMALL LETTER L|l}} |{{chset-cell1|U+006D LATIN SMALL LETTER M|m}} |{{chset-cell1|U+006E LATIN SMALL LETTER N|n}} |{{chset-cell1|U+006F LATIN SMALL LETTER O|o}} | |
{{chset-left1|7x}}
|{{chset-cell1|U+0070 LATIN SMALL LETTER P|p}} |{{chset-cell1|U+0071 LATIN SMALL LETTER Q|q}} |{{chset-cell1|U+0072 LATIN SMALL LETTER R|r}} |{{chset-cell1|U+0073 LATIN SMALL LETTER S|s}} |{{chset-cell1|U+0074 LATIN SMALL LETTER T|t}} |{{chset-cell1|U+0075 LATIN SMALL LETTER U|u}} |{{chset-cell1|U+0076 LATIN SMALL LETTER V|v}} |{{chset-cell1|U+0077 LATIN SMALL LETTER W|w}} |{{chset-cell1|U+0078 LATIN SMALL LETTER X|x}} |{{chset-cell1|U+0079 LATIN SMALL LETTER Y|y}} |{{chset-cell1|U+007A LATIN SMALL LETTER Z|z}} |{{chset-cell1|U+007B LEFT CURLY BRACKET|{}} |{{chset-cell1|U+007C VERTICAL LINE|{{pipe}}}} |{{chset-cell1|U+007D RIGHT CURLY BRACKET|Right curly bracket |
|{{chset-cell1|U+007E TILDE|~}}
|{{chset-cell1|U+2302 HOUSE|⌂}}
|-
|{{chset-left1|8x}}
|{{chset-cell1|U+20AC EURO SIGN|€}}
|{{chset-cell1|||style=background:#DDD}}
|{{chset-cell1|||style=background:#DDD}}
|{{chset-cell1|||style=background:#DDD}}
|{{chset-cell1|||style=background:#DDD}}
|{{chset-cell1|||style=background:#DDD}}
|{{chset-cell1|||style=background:#DDD}}
|{{chset-cell1|||style=background:#DDD}}
|{{chset-cell1|||style=background:#DDD}}
|{{chset-cell1|||style=background:#DDD}}
|{{chset-cell1|||style=background:#DDD}}
|{{chset-cell1|||style=background:#DDD}}
|{{chset-cell1|||style=background:#DDD}}
|{{chset-cell1|||style=background:#DDD}}
|{{chset-cell1|||style=background:#DDD}}
|{{chset-cell1|||style=background:#DDD}}
|}
The rest are parts of a double byte sequence.
Private Use Area usage
{{table}}
|+ Mapping from Big5 EUDC to PUA code points{{cite web|title=Windows Best Fit Chart: CP950|url=http://ftp.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WindowsBestFit/bestfit950.txt|publisher=unicode.org|access-date=13 September 2016}} | ||
Big5 range | Unicode range | Formula{{cite web|title=Big5|url=http://kanji-database.sourceforge.net/charcode/big5.html|website=Kanji Database|access-date=13 September 2016}} |
---|---|---|
81 40–8D FE | U+EEB8–U+F6B0 | 0xeeb8 + (157 * (H-0x81)) + (L<0x80)?(L-0x40):(L-0x62) |
8E 40–A0 FE | U+E311–U+EEB7 | 0xe311 + (157 * (H-0x8e)) + (L<0x80)?(L-0x40):(L-0x62) |
C6 A1–C8 FE | U+F6B1–U+F848 | 0xf672 + (157 * (H-0xc6)) + (L<0x80)?(L-0x40):(L-0x62) |
FA 40–FE FE | U+E000–U+E310 | 0xe000 + (157 * (H-0xfa)) + (L<0x80)?(L-0x40):(L-0x62) |
This mapping is also used in HKSCS where a given glyph is not yet found in the Unicode revision specified.{{cite web|title=Big5-HKSCS:2008|url=http://www.ogcio.gov.hk/en/business/tech_promotion/ccli/terms/doc/hkscs-2008-big5-iso.txt|archive-url=https://archive.today/20160913170304/http://www.ogcio.gov.hk/en/business/tech_promotion/ccli/terms/doc/hkscs-2008-big5-iso.txt|archive-date=2016-09-13|url-status=dead}}
See also
- LMBCS-18
- Code page 951, a Microsoft hack for replacing cp950 with an HKSCS-enabled version on Windows XP
References
External links
- [https://archive.today/20130128151528/http://msdn.microsoft.com/goglobal/cc305155 Microsoft's Reference for Code Page 950]
- [https://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WINDOWS/CP950.TXT Mapping of Code Page 950 to Unicode ]
- International Components for Unicode (ICU) mapping files: [https://github.com/unicode-org/icu/blob/master/icu4c/source/data/mappings/windows-950-2000.ucm windows-950-2000.ucm], [https://github.com/unicode-org/icu/blob/master/icu4c/source/data/mappings/ibm-950_P110-1999.ucm ibm-950_P110-1999.ucm], [https://github.com/unicode-org/icu/blob/master/icu4c/source/data/mappings/ibm-1373_P100-2002.ucm ibm-1373_P100-2002.ucm]
{{character encoding}}