Code page 950
Language(s) | Traditional Chinese |
---|---|
Created by | Microsoft |
Extends | Big5 |
Based on | Big5-ETen |
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,[1] and hence, it is not a standard to communicate information over the internet, although it is usually labelled simply as big5
, including by Microsoft library functions.[2]
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.[3]
IBM's implementation of CCSID 950,[4] is slightly different, incorporating some of the ETEN extensions for lead bytes 0xA3,[5] 0xC6,[3][6] 0xC7[7] and 0xC8,[3][8] while omitting those with lead byte 0xF9 (which Microsoft includes), mapping them instead to the Private Use Area as user-defined characters.[3][9]
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 as CCSID 1370 (which includes both single-byte (0x80) and double-byte euro signs)[10] or CCSID 1373 (which includes only the double-byte euro sign).[11] Code page 1373 matches Microsoft behaviour in which ETEN extensions are included.[12][13][14][15][16]
CCSID 950 comprises single byte code page 1114 (CCSID 1114) and double byte code page 947 (CCSID 947),[4][17][18] whereas the euro sign extended CCSID 1370 comprises single byte code page 1114 (CCSID 5210) and double byte code page 947 (CCSID 21427).[10][19][20]
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.
_0 | _1 | _2 | _3 | _4 | _5 | _6 | _7 | _8 | _9 | _A | _B | _C | _D | _E | _F | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0_ | ☺ 263A |
☻ 263B |
♥ 2665 |
♦ 2666 |
♣ 2663 |
♠ 2660 |
• 2022 |
◘ 25D8 |
○ 25CB |
◙ 25D9 |
♂ 2642 |
♀ 2640 |
♪ 266A |
♫ 266B |
☼ 263C | |
1_ | ► 25BA |
◄ 25C4 |
↕ 2195 |
‼ 203C |
¶ 00B6 |
§ 00A7 |
▬ 25AC |
↨ 21A8 |
↑ 2191 |
↓ 2193 |
→ 2192 |
← 2190 |
∟ 221F |
↔ 2194 |
▲ 25B2 |
▼ 25BC |
2_ | SP 0020 |
! 0021 |
" 0022 |
|
$ 0024 |
% 0025 |
& 0026 |
' 0027 |
( 0028 |
) 0029 |
|
+ 002B |
, 002C |
- 002D |
. 002E |
/ 002F |
3_ | 0 0030 |
1 0031 |
2 0032 |
3 0033 |
4 0034 |
5 0035 |
6 0036 |
7 0037 |
8 0038 |
9 0039 |
: 003A |
; 003B |
< 003C |
= 003D |
> 003E |
? 003F |
4_ | @ 0040 |
A 0041 |
B 0042 |
C 0043 |
D 0044 |
E 0045 |
F 0046 |
G 0047 |
H 0048 |
I 0049 |
J 004A |
K 004B |
L 004C |
M 004D |
N 004E |
O 004F |
5_ | P 0050 |
Q 0051 |
R 0052 |
S 0053 |
T 0054 |
U 0055 |
V 0056 |
W 0057 |
X 0058 |
Y 0059 |
Z 005A |
[ 005B |
\ 005C |
] 005D |
^ 005E |
_ 005F |
6_ | ` 0060 |
a 0061 |
b 0062 |
c 0063 |
d 0064 |
e 0065 |
f 0066 |
g 0067 |
h 0068 |
i 0069 |
j 006A |
k 006B |
l 006C |
m 006D |
n 006E |
o 006F |
7_ | p 0070 |
q 0071 |
r 0072 |
s 0073 |
t 0074 |
u 0075 |
v 0076 |
w 0077 |
x 0078 |
y 0079 |
z 007A |
{ 007B |
| 007C |
} 007D} |
~ 007E |
⌂ 2302 |
8_ | € 20AC |
Letter Number Punctuation Symbol Other Undefined
The rest are parts of a double byte sequence.
Private Use Area usage
Big5 range | Unicode range | Formula[24] |
---|---|---|
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.[25]
See also
- LMBCS-18
- Code page 951, a Microsoft hack for replacing cp950 with an HKSCS-enabled version on Windows XP
References
- ↑ "Character Sets". IANA — Protocol Registries. https://www.iana.org/assignments/character-sets.
- ↑ "Encoding.WindowsCodePage Property - .NET Framework (current version)". MSDN. Microsoft. https://msdn.microsoft.com/en-us/library/system.text.encoding.windowscodepage(v=vs.110).aspx.
- ↑ 3.0 3.1 3.2 3.3 Zhu, HF.; Hu, DY.; Wang, ZG.; Kao, TC.; Chang, WCH.; Crispin, M. (1996), "Chinese Character Encoding for Internet Messages", Requests for Comments (IETF), doi:10.17487/rfc1922, RFC 1922, https://tools.ietf.org/html/rfc1922
- ↑ 4.0 4.1 "CCSID 950 information document". http://www-01.ibm.com/software/globalization/ccsid/ccsid950.html.
- ↑ "Lead byte A3: ibm-950_P110-1999". ICU Demonstration - Converter Explorer. International Components for Unicode. https://demo.icu-project.org/icu-bin/convexp?conv=ibm-950_P110-1999&b=A3&s=ALL#layout.
- ↑ "Lead byte C6: ibm-950_P110-1999". ICU Demonstration - Converter Explorer. International Components for Unicode. https://demo.icu-project.org/icu-bin/convexp?conv=ibm-950_P110-1999&b=C6&s=ALL#layout.
- ↑ "Lead byte C7: ibm-950_P110-1999". ICU Demonstration - Converter Explorer. International Components for Unicode. https://demo.icu-project.org/icu-bin/convexp?conv=ibm-950_P110-1999&b=C7&s=ALL#layout.
- ↑ "Lead byte C8: ibm-950_P110-1999". ICU Demonstration - Converter Explorer. International Components for Unicode. https://demo.icu-project.org/icu-bin/convexp?conv=ibm-950_P110-1999&b=C8&s=ALL#layout.
- ↑ "Lead byte F9: ibm-950_P110-1999". ICU Demonstration - Converter Explorer. International Components for Unicode. https://demo.icu-project.org/icu-bin/convexp?conv=ibm-950_P110-1999&b=F9&s=ALL#layout.
- ↑ 10.0 10.1 "CCSID 1370 information document". http://www-01.ibm.com/software/globalization/ccsid/ccsid1370.html.
- ↑ "ibm-1373_P100-2002". ICU Demonstration - Converter Explorer. International Components for Unicode. http://icu-project.org/icu-bin/convexp?conv=ibm-1373_P100-2002.
- ↑ "Lead byte A3: ibm-1373_P100-2002". ICU Demonstration - Converter Explorer. International Components for Unicode. https://demo.icu-project.org/icu-bin/convexp?conv=ibm-1373_P100-2002&b=A3&s=ALL#layout.
- ↑ "Lead byte C6: ibm-1373_P100-2002". ICU Demonstration - Converter Explorer. International Components for Unicode. https://demo.icu-project.org/icu-bin/convexp?conv=ibm-1373_P100-2002&b=C6&s=ALL#layout.
- ↑ "Lead byte C7: ibm-1373_P100-2002". ICU Demonstration - Converter Explorer. International Components for Unicode. https://demo.icu-project.org/icu-bin/convexp?conv=ibm-1373_P100-2002&b=C7&s=ALL#layout.
- ↑ "Lead byte C8: ibm-1373_P100-2002". ICU Demonstration - Converter Explorer. International Components for Unicode. https://demo.icu-project.org/icu-bin/convexp?conv=ibm-1373_P100-2002&b=C8&s=ALL#layout.
- ↑ "Lead byte F9: ibm-1373_P100-2002". ICU Demonstration - Converter Explorer. International Components for Unicode. https://demo.icu-project.org/icu-bin/convexp?conv=ibm-1373_P100-2002&b=F9&s=ALL#layout.
- ↑ "CCSID 1114 information document". http://www-01.ibm.com/software/globalization/ccsid/ccsid1114.html.
- ↑ "CCSID 947 information document". http://www-01.ibm.com/software/globalization/ccsid/ccsid947.html.
- ↑ "CCSID 5210 information document". http://www-01.ibm.com/software/globalization/ccsid/ccsid5210.html.
- ↑ "CCSID 21427 information document". http://www-01.ibm.com/software/globalization/ccsid/ccsid21427.html.
- ↑ Code Page CPGID 01114 (pdf), IBM, ftp://ftp.software.ibm.com/software/globalization/gcoc/attachments/CP01114.pdf
- ↑ Code Page CPGID 01114 (txt), IBM, ftp://ftp.software.ibm.com/software/globalization/gcoc/attachments/CP01114.txt
- ↑ "Windows Best Fit Chart: CP950". unicode.org. ftp://ftp.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WindowsBestFit/bestfit950.txt.
- ↑ "Big5". http://kanji-database.sourceforge.net/charcode/big5.html.
- ↑ "Big5-HKSCS:2008". http://www.ogcio.gov.hk/en/business/tech_promotion/ccli/terms/doc/hkscs-2008-big5-iso.txt.
External links
- Microsoft's Reference for Code Page 950
- Mapping of Code Page 950 to Unicode
- International Components for Unicode (ICU) mapping files: windows-950-2000.ucm, ibm-950_P110-1999.ucm, ibm-1373_P100-2002.ucm