Code page 949 (IBM)
Alias(es) |
|
---|---|
Language(s) | Code page 944 |
IBM code page 949 (IBM-949) is a
Giving values in
Although both are sometimes named "cp949", IBM-949 is different from
Terminology and encoding labelling
Both IBM-949 and
Although the meaning of the label "ibm-949" (and conversely "windows-949" and "ms949") is unambiguous where these labels are supported, the interpretation of the encoding labels "949" and "cp949" consequently varies between implementations. For example, International Components for Unicode uses "cp949", "949", "ibm-949" and "x-IBM949" to refer to IBM-949,[4] and additionally the labels "cp949c", "ibm-949c" and "x-IBM949C" to refer to an variant which uses unmodified ASCII mappings for 0x20–7E (resulting in duplicate mappings for the backslash),[5] while (of the labels incorporating the code page number 949) only "ms949" and "windows-949" are assigned to UHC.[6] This is in contrast to Python, which recognises both "cp949" and "949" (in addition to the more explicit "ms949" and "uhc", but not "windows-949") as labels for UHC, and does not include an IBM-949 codec.[7] The code page 949 used by Korean language versions of OS/2 is the IBM code page; to add support for the entire Unicode set of Korean syllables, a third-party patch exists to replace it with the Microsoft code page.[1]
IBM-949 is a
History
A version of Code page 951 (a DBCS-PC, i.e. double-byte non-
Language(s) | Code page 933 |
---|---|
Succeeded by | IBM code page 949 |
The earlier October 1989 revision of C-H 3-3220-125 had instead defined Code page 926 as its DBCS-PC code, which encoded the same characters as IBM-834 in a layout differing from both IBM-951 and IBM-834, which had a different lead byte range and was not an EUC-KR extension.
Code page 944/926 are now
Single byte codes
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F | |
0x | NUL | ┌ | ┐ | └ | ┘ | │ | ─ | •
|
◘
|
○
|
◙
|
♂ | ♀ | ♪
|
♫
|
☼
|
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 | ¢
|
¬
|
\
|
‾
|
¦
|
8F | ||||||||||
9x | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 9A | 9B | 9C | 9D | 9E | 9F |
Ax | A0 | 1-_ | 2-_ | 3-_ | 4-_ | 5-_ | 6-_ | 7-_ | 8-_ | 9-_ | 10-_ | 11-_ | 12-_ | 13-_ | 14-_ | 15-_ |
Bx | 16-_ | 17-_ | 18-_ | 19-_ | 20-_ | 21-_ | 22-_ | 23-_ | 24-_ | 25-_ | 26-_ | 27-_ | 28-_ | 29-_ | 30-_ | 31-_ |
Cx | 32-_ | 33-_ | 34-_ | 35-_ | 36-_ | 37-_ | 38-_ | 39-_ | 40-_ | 41-_ | 42-_ | 43-_ | 44-_ | 45-_ | 46-_ | 47-_ |
Dx | 48-_ | 49-_ | 50-_ | 51-_ | 52-_ | 53-_ | 54-_ | 55-_ | 56-_ | 57-_ | 58-_ | 59-_ | 60-_ | 61-_ | 62-_ | 63-_ |
Ex | 64-_ | 65-_ | 66-_ | 67-_ | 68-_ | 69-_ | 70-_ | 71-_ | 72-_ | 73-_ | 74-_ | 75-_ | 76-_ | 77-_ | 78-_ | 79-_ |
Fx | 80-_ | 81-_ | 82-_ | 83-_ | 84-_ | 85-_ | 86-_ | 87-_ | 88-_ | 89-_ | 90-_ | 91-_ | 92-_ | 93-_ | 94-_ |
Double byte codes
Lead bytes 0x8F–99, 0xC9, 0xFE (user-defined ranges)
IBM-949 is designed to support a maximum of 1880 UDC (user-defined characters),
When mapped to Unicode, 0xC9A1–C9FE (between the syllable and hanja ranges) are mapped to the Unicode Private Use Area code points U+E000–E05D, while 0xFEA1–FEFE (between the end of the hanja range and the end of the plane) are mapped to U+E05E–E0BB. Outside the Wansung plane, 0x8FA0–9AA5 (where the second byte is in the range 0xA1–FE) are mapped to the Private Use Area code points U+E0BC–E4CA.[4] The last of these ranges cuts into the start of the 0x9A row (shown below).
Collectively these private use ranges cover the code points U+E000–E4CA, allowing 1227 UDC to be mapped from IBM-949 to Unicode.[12] The separate private use area range U+F843–F86E is used by IBM to map some characters within the extended hanja range.[12] This follows early recommendations from the Unicode Consortium that corporate characters be allocated from U+F8FF downward and user-defined characters be allocated from U+E000 upward,[18] and is part of a larger corporate private use area scheme which is defined internally by IBM, and uses the range U+F83D–F8FF.[19][20]
Lead bytes 0x9A–9D (extended symbols and hanja)
According to the 1992 specification, this entire range is user-defined.
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F | |
9AAx | | | | | | ǂ[a]
|
≦
|
≧
|
K | ¦
|
ʺ
|
喀 | 擱 | 羯 | 酣 | |
9ABx | 醵 | 骼 | 蒹 | 哽 | 扃 | 檠 | 熲 | 畊 | 稧 | 雞 | 杲 | 瞽 | 詁 | 栱 | 槓 | 箜 |
9ACx | 蝌 | 霍 | 盥 | 鸛 | 鉸 | 佝 | 傴 | 媾 | 嫗 | 晷 | 甌 | 覯 | 颶 | 掬 | 跪 | 巹 |
9ADx | 漌 | 岌 | 笈 | 覇 | 鰭 | 唜 | 糯 | 喃 | 曩 | 迺 | 佞 | 獰 | 孥 | 鬧 | 靼 | 怛 |
9AEx | 闥 | 韃 | 党 | 蟷 | 碓 | 菟 | 咄 | 垌 | 肚 | 蚪 | 滕 | 灯 | 鐙 | 犖 | 幱 | 埓 |
9AFx | 榔 | 涼 | 魎 | 癘 | 膂 | 蠡 | 鑢 | 櫟 | 鬣 | 昤 | 泠 | 苓 | 蛉 | 潦 | 艫 | |
9BAx | 轤 | 漉 | 祿 | 轆 | 籟 | 蕾 | 誄 | 寥 | 僂 | 髏 | 窿 | 凛 | 廩 | 提 | 漓 | |
9BBx | 离 | 螭 | 魑 | 痳 | 岦 | 媽 | 蟇 | 謾 | 鏝 | 鬘 | 魍 | 眛 | 苺 | 脉 | 俛 | 耄 |
9BCx | 鉾 | 濛 | 矇 | 瀰 | 糜 | 閩 | 婆 | 欂 | 牔 | 胖 | 髣 | 魴 | 潘 | 翻 | 辟 | 汴 |
9BDx | 辮 | 遍 | 駢 | 彆 | 迸 | 鴇 | 黼 | 蝠 | 丰 | 葑 | 仆 | 罘 | 苻 | 蜉 | 頫 | 鮒 |
9BEx | 吟 | 蕡 | 巿 | 髴 | 黻 | 妣 | 沙 | 沘 | 睥 | 篦 | 腓 | 轡 | 髀 | 擯 | 蘋 | 贇 |
9BFx | 顰 | 鬢 | 姒 | 麝 | 楂 | 槎 | 笥 | 槊 | 鑠 | 歃 | 鍤 | 霎 | 殤 | 鰓 | 噬 | |
9CAx | 婿 | 齟 | 射 | 單 | 尠 | 愃 | 洗 | 燹 | 霰 | 偰 | 契 | 挈 | 艘 | 霄 | 蟀 | |
9CBx | 瑣 | 叟 | 宿 | 晬 | 溲 | 祟 | 雎 | 鶉 | 虱 | 啻 | 寺 | 緦 | 矧 | 瑟 | 萼 | 贋 |
9CCx | 鴈 | 戞 | 遏 | 嵒 | 諳 | 黯 | 鞅 | 欸 | 皚 | 礙 | 靉 | 阨 | 射 | 篛 | 籥 | 羘 |
9CDx | 敔 | 恚 | 射 | 羨 | 臙 | 蠕 | 讌 | 塩 | 饜 | 嬰 | 睨 | 翳 | 蕋 | 遨 | 媼 | 薀 |
9CEx | 鰮 | 蕘 | 舂 | 蛹 | 吁 | 熨 | 蜿 | 幃 | 衞 | 囿 | 帷 | 蕤 | 黝 | 鬻 | 檼 | 珢 |
9CFx | 齦 | 挹 | 栮 | 頣 | 仞 | 眥 | 粢 | 耔 | 觜 | 赭 | 柞 | 潜 | 蚕 | 嶂 | 瘴 | |
9DAx | 装 | 纔 | 柢 | 蛆 | 豬 | 糴 | 囀 | 巓 | 磚 | 翦 | 窃 | 椄 | 梃 | 晢 | 瑅 | |
9DBx | 踶 | 吊 | 噪 | 皁 | 竈 | 笊 | 糶 | 絛 | 鯛 | 樅 | 蹤 | 蔟 | 肘 | 隼 | 則 | 証 |
9DCx | 痣 | 湌 | 慚 | 刱[b] | 悵 | 氅 | 簀 | 蜴 | 躑 | 濺 | 簷 | 蜻 | 砌 | 靆 | 峭 | 綃 |
9DDx | 鈔 | 鞘 | 數 | 躅 | 髑 | 怱 | 葱 | 摧 | 槌 | 甃 | 箒 | 鞦 | 麁 | 麤 | 杻 | 舳 |
9DEx | 冲 | 橇 | 贅 | 巵 | 徴 | 鵄 | 忱 | 拆 | 橐 | 駄 | 幀 | 蝙 | 庖 | 炮 | 舖 | 鉋 |
9DFx | 鞄 | 分 | 蓖 | 蹕 | 瘧 | 邯 | 鷳 | 炕 | 廨 | 慊 | 篋 | 陜 | 皞 | 醐 | 鶻 |
Lead bytes 0x9E–A0 (extended hanja and hangul syllables)
According to the 1992 specification, this entire range is user-defined.
Significant amongst these are 뢔 (0x9EFC), 쌰 (0x9FE6), 쎼 (0x9FED), 쓔 (0x9FF3) and 쬬 (0xA0C1), which correspond to the beginnings of the standard Wansung characters 뢨, 썅, 쏀, 쓩, and 쭁 respectively, when partly entered in an
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F | |
9EAx | 鑊 | 圜 | 懽 | 鬟 | 媓 | 怳 | 囂 | 猴 | 篌 | 忻 | 迄 | 頡 | 갂 | 갋 | 걹 | |
9EBx | 겇 | 겓 | 곩 | 곺 | 괙 | 괨 | 괫 | 궛 | 귕 | 귬 | 긂 | 긏 | 긑 | 긧 | 긼 | 깄 |
9ECx | 깉 | 깢 | 꺠 | 꼄 | 꼳 | 꽌 | 꽘 | 꽛 | 꽨 | 꾓 | 꾲 | 꾿 | 꿘 | 꿧 | 뀍 | 뀡 |
9EDx | 끠 | 낐 | 낻 | 냬 | 넏 | 넞 | 녇 | 녓 | 녙 | 녯 | 녺 | 놧 | 놰 | 눳 | 늧 | 닁 |
9EEx | 닑 | 닠 | 댱 | 댸 | 덨 | 덪 | 뎜 | 돓 | 됀 | 됏 | 됬 | 둗 | 둿 | 뒴 | 듁 | 듧 |
9EFx | 딮 | 딲 | 딷 | 딿 | 땨 | 떄 | 뗴 | 뚀 | 뚸 | 뜌 | 럐 | 렏 | 뢔 | 룜 | 뤗 | |
9FAx | 릐 | 맟 | 맻 | 먜 | 멫 | 멭 | 몀 | 몯 | 뫃 | 뫠 | 믁 | 믕 | 믜 | 믠 | 밎 | |
9FBx | 밨 | 밷 | 뱜 | 뱨 | 벘 | 벜 | 벹 | 볌 | 볒 | 볓 | 볔 | 봣 | 붗 | 붴 | 븘 | 븡 |
9FCx | 븨 | 빋 | 뺜 | 뺴 | 뻭 | 뻰 | 뻴 | 뻿 | 뼤 | 뽜 | 뽸 | 뿀 | 뿕 | 뿝 | 뿨 | 쀄 |
9FDx | 쀠 | 쁙 | 쁴 | 삮 | 삷 | 삻 | 샃 | 샇 | 샏 | 섥 | 섿 | 셑 | 셗 | 솓 | 솻 | 슌 |
9FEx | 슳 | 싀 | 싦 | 쌂 | 쌋 | 쌧 | 쌰 | 썃 | 썌 | 썻 | 쎅 | 쎙 | 쎠 | 쎼 | 쏼 | 쐿 |
9FFx | 쑷 | 쒓 | 쓓 | 쓔 | 씼 | 씿 | 앏 | 앟 | 얐 | 얫 | 얶 | 엱 | 엳 | 옝 | 옫 | |
A0Ax | 옺 | 욷 | 웟 | 윋 | 윶 | 읻 | 잧 | 잪 | 젇 | 젔 | 젛 | 젹 | 졋 | 좐 | 좜 | |
A0Bx | 좠 | 좬 | 좰 | 좸 | 죨 | 죰 | 죱 | 줫 | 쥭 | 즤 | 짔 | 쨰 | 쩗 | 쩰 | 쪗 | 쪠 |
A0Cx | 쫒 | 쬬 | 쮀 | 쯥 | 쯰 | 찟 | 찦 | 찯 | 찿 | 챂 | 챱 | 챼 | 쳣 | 쳥 | 쵀 | 췃 |
A0Dx | 츼 | 칻 | 캗 | 캩 | 컈 | 컽 | 켙 | 쾍 | 쾐 | 쾟 | 쾬 | 쾽 | 킈 | 턔 | 텠 | 텩 |
A0Ex | 퉷 | 튓 | 틍 | 틧 | 팊 | 팦 | 퍙 | 퍠 | 펲 | 펵 | 폇 | 퐤 | 풰 | 퓩 | 픅 | 픐 |
A0Fx | 픙 | 픠 | 픤 | 핟 | 핡 | 핬 | 핱 | 햬 | 헏 | 혬 | 횩 | 횸 | 훕 | 휌 | 흭 |
Lead bytes 0xA1–C8, 0xCA–FD (standard Wansung)
See also
- LMBCS-17
- Code page 951
- Windows-949
Footnotes
- SO 0x4160 is a not-equals sign displayed with a slash, while IBM-933 SO 0x418D is one displayed with a backslash (i.e. =⃥).[11] Although it is IBM-933 SO 0x4160 which is mapped to the usual not-equals GCGID SA540080 (fullwidth of SA540000), it is IBM-933 SO 0x418D which is mapped to EUC-KR and IBM-949 0xA1C1,[11] due to the reference glyph for the not-equals sign in KS C 5601-1987 also showing it with a backslash.[23] Hence, U+2260, which is mapped to EUC-KR and therefore IBM-949 0xA1C1, is mapped to IBM-933 SO 0x418D, leaving IBM-933 SO 0x4160 (and therefore IBM-949 0x9AA6) to be mapped to the visually similar character at U+01C2.[24]
- ^ The mapping from IBM is U+5231 刱, but the glyph in the IBM document C-H 3-3220-125 1992-09 is closer to U+5259 剙 (host code 62D5).[11]
References
- ^ a b Borgendale, Ken. "OS/2 Codepage and Keyboard Display Tools".
- ^ van Kesteren, Anne, "5. Indexes (§ index EUC-KR)", Encoding Standard, WHATWG,
This matches the KS X 1001 standard and the Unified Hangul Code, more commonly known together as Windows Codepage 949.
- ^ van Kesteren, Anne. "4.2. Names and labels". Encoding Standard. WHATWG.
- ^ a b c d e "Converter Explorer: ibm-949_P110-1999 (alias x-IBM949)", International Components for Unicode, Unicode Consortium
- ^ a b "Converter Explorer: ibm-949_P11A-1999 (alias x-IBM949C)", International Components for Unicode, Unicode Consortium. This is the ASCII-based version of IBM-949.
- ^ "windows-949-2000", Converter Explorer, International Components for Unicode
- ^ "codecs — Codec registry and base classes § Standard Encodings". Python 3.7.2 documentation. Python Software Foundation.
- ^ a b c "Coded character set identifiers: CCSID 949". IBM Globalization. IBM. Archived from the original on 2014-11-29.
- ^ "CCSID 1088 information document". Archived from the original on 2016-03-26.
- ^ "Code page 951 information document". Archived from the original on 2017-01-16.
- ^ a b c d e f g h i j k "IBM Korean Graphic Character Set: DBCS-Host and DBCS-PC" (PDF). IBM. 2001 [1992]. C-H 3-3220-125 1992-09.
- ^ a b c d e f g h i j International Components for Unicode (ICU), ibm-949_P110-1999.ucm, 2002-12-03
- ^ "Coded character set identifiers: CCSID 934". IBM Globalization. IBM. Archived from the original on 2014-12-02.
- ^ a b "Coded character set identifiers: CCSID 944". IBM Globalization. IBM. Archived from the original on 2014-12-01.
- ^ Viswanadha, Ram (2001-11-01). "ICU-1281 Remove unwanted ucmfiles". International Components for Unicode.
- ^ Code Page CPGID 01088 (pdf) (PDF), IBM
- ^ Code Page CPGID 01088 (txt), IBM
- ^ "2.0: Changes in Unicode 1.0" (PDF). The Unicode Standard, Version 1.1. Unicode Consortium. pp. 3–4. UTR #4.
- ^ a b "CPGID 01449: IBM default PUA". IBM Globalization: Code page identifiers. IBM. Archived from the original on 2015-09-16.
IBM has designated 195 positions from U+F83D to U+F8FF for use as IBM Corporate-zone and intends to use them consistently within IBM whenever there is a need to maintain the round-trip integrity of IBM characters.
- ^ IBM (1997). unicode.nam: Allow the Unicode characters to be specified using either the IBM or PostScript like names. (Included with Borgendale, Ken, OS/2 Codepage and Keyboard Display Tools)
- ^ "ibm-933_P110-1995.ucm". International Components for Unicode.
- Code page 933 and an older version of Code page 949 without these extensions; however, the hanja in this section correspond to (and are in the same order as) the subset of table 7 for which a "PC Code" is not listed.[11] The Corporate Private Use Area mappings are also co-ordinated with other code pages,[19] including Code page 933,[21]which can be used to obtain the "Host Code" for a given Corporate Private Use Area mapping.
- ISO-IR-149.
- ^ "ibm-933_P110-1995 (lead bytes 0E41)". Converter Explorer. International Components for Unicode.