KS X 1001は、韓国でハングルや漢字をあらわすのに用いられている文字コード(符号化文字集合)の規格(、KS)。以前はKS C 5601の規格名だった。単にKSコードとも呼ばれる。
現代韓国でUnicodeと並んで用いられるほぼ唯一の文字コードである。
概要 JIS X 0208に似た94×94文字集合で、ハングル2350字、漢字4888字、他英数字や日本語の仮名文字など989字、合計8227字を含んでいる。
ハングルについては、字母を組み合わせて構成した1音節を1文字とみなしてコードを振る「完成型コード」であり、総数である11172字のうち使用頻度の高い2割強のみを符号化している。このため外来語に使われる音など表現できない音節が存在し、同音や代用表記への変更を余儀なくされるケースも発生した。この問題は1996年策定のUnicode 2.0.0にて11172文字すべての現代ハングル文字が含まれることで決着を見た。
漢字は読みの順に配列されている。朝鮮語では原則として漢字は一字一音であるが、複数の読みを持つ漢字がわずかながらあり、この規格ではそのような漢字をそれぞれの読みの位置に重複して符号化していることが大きな特徴である。頭音法則により、先頭に来るかそうでないかで読みが異なるものもあるが、「」や「」などのよく使われるものはそれも別の読みとみなして重複符号化している。もっとも多いのは「」で、4個所に重複符号化されている。この方式は、コードから文字の読みを機械的に判定できるという利点がある一方で、字形からコードを唯一に定めることができないという問題もある。UnicodeおよびISO/IEC 10646においては、CJK統合漢字には1文字のみを収録し、ラウンドトリップ変換のためにそれ以外の文字はCJK互換漢字に重複符号化している。
KS X 1001をEUCで符号化したものを韓国語EUC (EUC-KR) というが、実際にはKS X 1001が他の符号化方式で用いられることはほとんどないため(ISO-2022-KRというものもあるがほとんど使われていない)、単にKS C 5601といっただけでEUC-KRを意味している場合が多い。
なお朝鮮民主主義人民共和国にはKPS 9566という別の規格が存在する。
歴史 1974年9月27日 - 7bit ハングルコードとして、KS C 5601 が制定される。当初はハングルの子音文字(頭子音と終子音の和集合)30種類を0x41 - 0x5E、母音文字の21種類を0x62 - 0x7Cにとびとびで配置したコードであった。このコード体系は頭子音と終子音を区別しない「1ボル」方式である。 1982年6月14日 - KS C 5601は改訂され、附属書に「16bit符号」が追加された。「16bit符号」は初声・中声・終声をそれぞれ5 bit で表し、最上位ビットを1としたコード。 1987年3月1日 - KS C 5601は再び改訂され、7bit ハングルコードと「16bit符号」は附属書に移動され、本文には94×94文字集合としてハングル2350文字、漢字4888文字、その他986文字が定められた。 1992年10月15日 - KS C 5601は改訂され、附属書の「16bit符号」は「2byte組合型符号」(Johab) に変更された。初声・中声・終声をそれぞれ5 bit で表す点は同様だが、ビットパターンは全く異なっている。 1996年6月 - Unicode 2.0.0策定。韓国の要望を容れる形で、11172文字全ての現代ハングル文字とKS X 1001の全ての重複文字が収録された。 1997年8月20日 - 新たに情報部門(X)の新設に伴い、KS C 5601 は KS X 1001 に改番された。 1998年12月31日 - KS X 1001は改訂され、ユーロ記号と登録商標マークの2字が追加された。 2002年 - KS X 1001:2002 、郵便番号記号(郵便(番号)を示すハングルの頭文字を丸で囲ったもの)が追加された。
関連項目 ハングル 朝鮮における漢字 (旧 KS C 5657) - 補助文字セット (旧 KS C 5636) - ラテン文字 7ビット符号 KS X 1004(旧 KS C 5620) (旧 KS C 5700) KS X 1027(拡張漢字目録) Extended Unix Code(KS X 2901) (Windows Code Page 949, IBM Code Page 1363) 漢文教育用基礎漢字() 人名用漢字#韓国 朝鮮人の人名#個人名 JIS X 0208(日本) GB 2312(中華人民共和国) Big5(台湾・香港・マカオ) CJK統合漢字 CJKV Unicode
脚注
外部リンク KS X 1001(KS C 5601)コード表 - CyberLibrarian What are KS X 1001(KS C 5601) and other Hangul codes? Implementing Cross-Locale CJKV Code Conversion by Ken Lunde