Hong Kong Supplementary Character Set

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search

The Hong Kong Supplementary Character Set (Chinese: 香港增補字符集; commonly abbreviated to HKSCS) is a set of Chinese characters – 4,702 in total in the initial release—used in Cantonese, as well as when writing the names of some places in Hong Kong (whether in written Cantonese or standard written Chinese sentences).[1] It evolved from the preceding Government Chinese Character Set (政府通用字庫) or GCCS. GCCS is a set of supplementary Chinese characters coded in the user-defined areas of the Big5 character set. It was originally used within the Hong Kong Government and later used by the public. It later evolved into Hong Kong Supplementary Character Set when the characters in the set were submitted to ISO-10646 for coding.

Development history[edit]

Due to the inherent differences between standard written Chinese and written Cantonese, the Government of Hong Kong recognised the need for a standardised set of proprietary characters that would allow for the streamlining of electronic communication; at the time, the Big5 Chinese encoding scheme did not contain a vast majority of these characters (some were erroneously cross-listed with similar characters).

The Government Chinese Character Set (政府通用字庫) or GCCS was thus developed by the government. The character set consists of Chinese characters commonly used in Hong Kong. Some characters are Cantonese-specific, while some are alternative forms of characters. The set is not well-organised and the characters are not closely examined.

Subsequently, the HKSCS-1999 (HKSCS 1999 specification) was developed. Following its acceptance, newer revisions were released in 2001 (adding 116 new characters) and in 2004 (adding 123 new characters), totalling 4,941 characters. 106 GCCS characters were removed in HKSCS-1999 as a result of unification, and their Big5 code points are reserved for compatibility.[2][3] Retired "not verifiable" GCCS characters are found in UTC Sources (UTC-00877–UTC-00898),[4] where they are sourced from Adobe-CNS1-1,[5] an Adobe-CNS1 supplement implemented to support GCCS.[6]

The HKSCS is encoded in Big5 (aka big5hk[7]) and ISO 10646. Starting from HKSCS-2004, all characters using to Private Use Area section of Unicode[a] are remapped, with many of them reassigned to Extension B Block or Supplementary Ideographic Plane Compatibility Block.[8] However, to preserve compatibility with programs that generated PUA code points, the allocated code points are reserved, and no new characters will be mapped to PUA.

Version history[edit]

Version Total characters Publish date
GCCS 3,049 1995
HKSCS-1999 4,702 09/1999
HKSCS-2001 4,818 12/2001
HKSCS-2004 4,941 05/2005
HKSCS-2008 5,009 12/2009
HKSCS-2016 5,033 05/2017



Operating systems[edit]

Microsoft Windows[edit]

In Microsoft Windows 98, NT 4.0, 2000, XP, HKSCS support can be enabled using Microsoft's patch. In Microsoft's implementation, application using code page 950 automatically uses a hidden code page 951 table for the Big5 encoding of the HKSCS extensions. The table supports all code points in HKSCS-2001, except for the compatibility code points specified by the standard.[10] In addition, the MingLiU font is altered using Microsoft's patch. This patch is known to create conflicts in applications such as Microsoft Office, or any application using fonts supporting simplified Chinese characters (e.g.: Simsun). If the target environment contains custom font mapped to the code points affected by Microsoft's patch, the custom fonts can undo Microsoft's patch. Furthermore, the patch breaks EUDC Editor supplied with the affected versions of Windows.[11]

Starting with Windows Vista, HKSCS-2004 characters are only supported as Unicode 4.1 or later.[12] All characters are assigned standard, non-PUA codepoints. The characters are displayed with the MingLiU font, and these characters can be entered via the keyboard. The patch that provides Big5 encoding of HKSCS is unsupported in Windows Vista and later. A utility provided by Microsoft is available to convert HKSCS and Unicode PUA-encoded characters to Unicode 4.1 version.[13]

In 2010, Microsoft published a HKSCS-2004 patch for Windows XP and Windows Server 2003.[14] It replaces Windows XP version of MingLiu, PMingLiu, and MingLiu_HKSCS (if HKSCS-2001 patch was applied) with Windows 7 version of MingLiu, PMingLiu and MingLiu_HKSCS. In addition, MingLiU-ExtB, MingLiU_HKSCS-ExtB and PMingLiU-ExtB fonts will be added onto target system. However, IME is not updated as it was in the case of HKSCS-2001 patch, and the fonts are from pre-release of Windows 7.

For earlier versions of the OS, HKSCS support requires the use of Microsoft's patch, or the Hong Kong government's Digital 21's utilities.


HKSCS support was added to glibc in 2000, but it has not been updated since then. HKSCS-2004 support is handled as Unicode 4.1 and later.

For freedesktop.org setup, AR PL ShanHeiSun Uni font fully supports HKSCS-2004 since 0.1-0.dot.1, with latest revision of HKSCS-2004 supported in version 0.1.20060903-1.

Modern desktop distributions (e.g. Ubuntu) include Arphic Technology's HKSCS-compliant UKai and UMing fonts out of the box when Chinese Language support is selected during installation. They can also be installed manually at a later time.

Mac OS[edit]

Mac OS X 10.0–10.2 supports HKSCS-1999. 10.3–10.4 supports HKSCS-2001. Some of the letters added to HKSCS-2004 is supported via Unicode PUA in OS X 10.4. Starting with OS X 10.5, all the HKSCS-2004 characters are supported via standard Unicode 4.1 code points.


Mozilla 1.5 and above supports HKSCS, with HKSCS-2004 support added into Gecko 1.8.1 code base.[15] Unlike the above-mentioned patch, Mozilla uses its own code page table. However, the fix for bug 343129 does not support characters mapped to code points above Basic Multilingual Plane.[16]

QT 3.x-based applications (e.g.: KDE) only support characters mapped to code points FFFF or lower. In QT4, characters outside BMP are supported via surrogates. Big5-HKSCS Text Codec supports HKSCS-1999 back in Qt-2.3.x, but it was too late in Qt development schedule to be officially included in the Qt-2.3.x series, so it was officially supported in Qt-3.0.1. HKSCS-2001 support was added in Qt-3.0.5.[17]

GNOME supports HKSCS characters in Unicode ranges, except those mapped to the Basic Multilingual Plane compatibility block. Patches to support characters mapped to above Basic Multilingual Plane was introduced during Pango 1.1.[18]

The WHATWG Encoding Standard includes HKSCS in decoding but not in encoding, and always does even with the plain Big5 label. Newer browsers follow the standard, including Firefox.

See also[edit]



  1. ^ FAQs about GovHK Online Services – Other Technical Questions and Trouble Shooting
  2. ^ "Big5CMP.txt". Archived from the original on 13 September 2016. Found at Mapping table - HKSCS-2008
  3. ^ "HKSCS-2004 Annex IV. Compatibility Points for GCCS" (PDF). Archived from the original (PDF) on 30 September 2016. Retrieved 29 September 2016.
  4. ^ "Group:Big5-GCCS外字". Retrieved 30 September 2016.
  5. ^ "U-source glyphs" (PDF). Retrieved 30 September 2016.
  6. ^ "The Adobe-CNS1-6 Character Collection" (PDF). Retrieved 30 September 2016.
  7. ^ http://infocenter.sybase.com/help/topic/com.sybase.infocenter.dc34789.1550/html/ocsinunx/CIHEBHFB.htm
  8. ^ "Big5-HKSCS:2004".
  9. ^ OGCIO - Development of HKSCS
  10. ^ Steele, Shawn. "CP 951 & HKSCS". I'm not a Klingon. MS Dev Blog. Retrieved 13 September 2016.
  11. ^ 華通資訊網: 小心!有人悄悄換掉了你的Windows系統字型
  12. ^ Microsoft: Hong Kong Supplementary Character Set – Support for Windows Platform
  13. ^ Microsoft Character Code Conversion Routines For HKSCS-2004
  14. ^ Windows XP Font Pack for ISO 10646:2003 + Amendment 1 Traditional Chinese Support
  15. ^ Mozilla.org: Bug 343129 – Big5-HKSCS 2004 <==> Unicode Table Update
  16. ^ Bug 162431 – add non-BMP Unicode (plane 1 and above. surrogate) support to charset encoder/decoder
  17. ^ Qt 4.7: Big5-HKSCS Text Codec
  18. ^ Bug 101081 – Non-BMP (plane 1 thru plane 16) characters are not supported

External links[edit]