Reference articles on history, science, culture and more
Encyclopedia

Code page 950

Windows character set for Traditional Chinese

Image credit is listed at the end of this article.

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, 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.

01Terminology 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.

IBM's CCSID 950 comprises single byte code page 1114 (CCSID 1114) and double byte code page 947 (CCSID 947), 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, 0xC6, 0xC7 and 0xC8, while omitting those with lead byte 0xF9 (which Microsoft includes), mapping them instead to the Private Use Area as user-defined characters. 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.

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). It comprises single byte code page 1114 (CCSID 5210) and double byte code page 947 (CCSID 21427).

For better compatibility with Microsoft's variant in IBM Db2, IBM also define the pure double-byte Code page 1372 and associated variable-width CCSID 1373, which includes only the double-byte euro sign and matches Microsoft behaviour in which extension regions are included.

02Single 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.

Code page 1114
0 1 2 3 4 5 6 7 8 9 A B C D E F
0x
1x §
2x  SP  ! " # $ % & ' ( ) * + , - . /
3x 0 1 2 3 4 5 6 7 8 9 : ; < = > ?
4x @ A B C D E F G H I J K L M N O
5x P Q R S T U V W X Y Z [ \ ] ^ _
6x ` a b c d e f g h i j k l m n o
7x p q r s t u v w x y z { | } ~
8x

The rest are parts of a double byte sequence.

03Private Use Area usage

Mapping from Big5 EUDC to PUA code points
Big5 rangeUnicode rangeFormula
81 40-8D FEU+EEB8-U+F6B00xeeb8 + (157 * (H-0x81)) + (L<0x80)?(L-0x40):(L-0x62)
8E 40-A0 FEU+E311-U+EEB70xe311 + (157 * (H-0x8e)) + (L<0x80)?(L-0x40):(L-0x62)
C6 A1-C8 FEU+F6B1-U+F8480xf672 + (157 * (H-0xc6)) + (L<0x80)?(L-0x40):(L-0x62)
FA 40-FE FEU+E000-U+E3100xe000 + (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.

Watch videos about Code page 950Explainers and documentaries on YouTube (opens in a new tab)

Sources and credits

This article is adapted from the Wikipedia article Code page 950, written by its contributors and licensed under CC BY-SA 4.0. Fathomly has changed the layout, removed citation markers, navigation and maintenance notices, and adjusted punctuation. This adapted version is shared under the same license. For references, see the original article.

Images, from Wikimedia Commons:

Fathomly is not affiliated with or endorsed by the Wikimedia Foundation. Spotted a problem? Tell us.