IBM-949 コード ページのレイアウト | |
| エイリアス |
|
|---|---|
| 言語 | 韓国語 |
| 作成者 | IBM |
| 分類 | 拡張 ISO 646、可変幅エンコーディング、CJK エンコーディング |
| 拡張 | EUC-KR |
| 先行 | コードページ 944 |
IBM コード ページ 949 (IBM-949) は、IBMがコンピューター上で韓国語のテキストを表すために使用している文字エンコードです。これは、韓国標準KS X 1001で定義されている万城コードの文字をEUC-KRと互換性のある形式で表す可変幅エンコードですが、追加の漢字、追加の合成ハングル音節、およびユーザー定義文字用の IBM 拡張機能が追加されています。
値を16 進数で指定すると、バイト 0x00 から 0x7F はシングル バイトの KS X 1003 ( ISO 646 :KR) 文字に使用されます。これは ASCII に似たセットですが、バックスラッシュではなくウォン記号が使われます。バイト 0x80 から 0x84 は IBM シングル バイト拡張文字に使用されます。先頭バイト 0x8F から 0xA0 は IBM ダブル バイト拡張文字に使用されます。先頭バイト 0xA1 から 0xFE は Wansung コード ( EUC-KR 形式のKS X 1001文字、ダブル バイト) に使用されますが、一部の未使用のスペースはユーザー定義の使用のために開放されます。
どちらも「cp949」という名前が付けられることもありますが、IBM-949 は、EUC-KR の別の拡張である Microsoft の統合ハングル コードであるWindows コード ページ 949 (IBM-1363) とは異なります。また、IBM のプレーン EUC-KR の実装 ( IBM-970 ) と混同しないでください。OS /2のコード ページ 949 はIBM コード ページですが、これを変更するためのサードパーティのパッチが存在します。[1]
用語とエンコーディングのラベル付け
IBM-949 と統合ハングルコード(Windows-949) はどちらも「コードページ 949」(または「cp949」) として知られていますが、共通しているのは EUC-KR サブセットのみです。どちらにも、識別するための標準化されたIANA登録ラベルはありません。UHC はWHATWGエンコーディング標準に含まれており[2] 、 「windows-949」を含むラベルがありますが、[3] IBM-949 は含まれていません。したがって、IBM-949 はHTML5では許可されていません。
ラベル「ibm-949」(および逆に「windows-949」と「ms949」)の意味は、これらのラベルがサポートされている場合は明確ですが、その結果、エンコード ラベル「949」と「cp949」の解釈は実装によって異なります。たとえば、International Components for Unicode では、IBM-949 を指すために「cp949」、「949」、「ibm-949」、「x-IBM949」を使用します。[4]また、ラベル「cp949c」、「ibm-949c」、「x-IBM949C」は、0x20~7E の未変更のASCIIマッピングを使用するバリアント(バックスラッシュのマッピングが重複する)を指すために使用されます。[5]一方、(コード ページ番号 949 を組み込んだラベルのうち)UHC に割り当てられているのは「ms949」と「windows-949」のみです。[6]これはPythonとは対照的です。Pythonは「cp949」と「949」(より明示的な「ms949」と「uhc」に加えて、「windows-949」は認識しない)の両方をUHCのラベルとして認識し、IBM-949コーデックを含んでいません。[7] OS/2の韓国語バージョンで使用されるコードページ949はIBMコードページです。韓国語音節のUnicodeセット全体のサポートを追加するために、これをMicrosoftコードページに置き換えるサードパーティのパッチが存在します。[1]
IBM-949は、 2つの固定幅コードページ、シングルバイトコードページ1088とダブルバイトコードページ951の組み合わせとして定義された可変幅エンコーディングです。[8] [9] [10]
歴史
IBM-949 の 2 バイト構成要素であるコード ページ 951 (DBCS-PC、つまり 2 バイトの非EUC非EBCDICコード) のバージョンは、コード ページ 933 の 2 バイト構成要素であるコード ページ 834 (DBCS-Host、つまり 2 バイトの EBCDIC コード) とともに、1992 年 9 月の IBM 企業仕様 CH 3-3220-125 の改訂版で定義されています。[11]このバージョンのコード ページ 949/951 では、先頭バイト範囲 0x8F–A0 全体をユーザー定義領域と見なし、標準の Wansung 割り当てとユーザー定義領域のみを含めたため、コード ページ 933/834 に含まれていた一部の文字は含まれていませんでした。[ 11] International Components for Unicode (ICU)によって実装されたものなど、それ以降のバージョンでは、ユーザー定義領域を縮小してこれらの文字を拡張機能として含めています。[12]
| 言語 | 韓国語 |
|---|---|
| 拡張 | Nバイトハングルコード |
| 変換/エンコード | コードページ 933 |
| 後継者 | IBM コード ページ 949 |
1989年10月のCH 3-3220-125の改訂では、コードページ926がDBCS-PCコードとして定義され、IBM-834と同じ文字をIBM-951やIBM-834とは異なるレイアウトでエンコードしていました。IBM-951やIBM-834は、リードバイトの範囲が異なり、EUC-KR拡張ではありませんでした。[11] IBM-926は、コードページ891またはコードページ1040(それぞれ8ビットNバイトハングルコードとその拡張。シフトJISが8ビットJIS X 0201を拡張する方法と比較してください)と結合され、それぞれIBM-934またはIBM-944を形成しました。[13] [14]
コード ページ 944/926 は現在では非推奨となっており、代わりに IBM-949 が採用されています。1992 年の改訂では、コード ページ 926 は「制限付き」(「登録されている特定の環境に限定される」) と指定されており、他のコード ページとの対応表やマッピングは示されていません。[11]また、CCSID 944 は「共存および移行」に分類されています。 [14] (CCSID 949 の「相互運用可能」と対照的)。[8] International Components for Unicode にはIBM-949 [4] [12]および IBM-933 のUnicodeマッピングが含まれていますが、IBM-944 のマッピングは 2001 年に削除されました。[15]
シングルバイトコード
2バイトコード
先頭バイト 0x8F~99、0xC9、0xFE(ユーザー定義の範囲)
IBM-949 は、最大 1880 個の UDC (ユーザー定義文字) をサポートするように設計されており、[8]これには、Wansung プレーンのユーザー定義行 (先頭バイト 0xC9 および 0xFE) と、Wansung プレーン外の範囲が含まれます。このバージョンでは、先頭バイト 0x8F~A0 には最大 1692 個の UDC が含まれ、先頭バイト 0xC9 および 0xFE にはそれぞれ最大 94 個が含まれます (つまり、末尾バイト 0xA1~FE が含まれます)。[11]ただし、 IBM-933の 2 バイト レパートリー全体をサポートする拡張機能が実装されると、先頭バイト 0x9A~A0 が使用されるため、ユーザー定義に残される最大文字数は少なくなります。[4] [12]
Unicodeにマッピングすると、0xC9A1~C9FE(音節と漢字の範囲の間)はUnicode私的使用領域のコードポイントU+E000~E05Dにマッピングされ、0xFEA1~FEFE(漢字の範囲の終わりと面の終わりの間)はU+E05E~E0BBにマッピングされます。万城面の外側では、0x8FA0~9AA5(2番目のバイトが0xA1~FEの範囲内)は私的使用領域のコードポイントU+E0BC~E4CAにマッピングされます。[4]これらの範囲の最後は、0x9A行の先頭にカットされます(以下を参照)。
これらの私的使用範囲は、コードポイント U+E000~E4CA を総合的にカバーし、1227 UDC を IBM-949 から Unicode にマッピングできます。[12]別の私的使用領域範囲 U+F843~F86E は、IBM が拡張漢字範囲内の文字をマッピングするために使用します。[12]これは、企業文字は U+F8FF から下方に割り当てられ、ユーザー定義文字は U+E000 から上方に割り当てられるという、Unicode コンソーシアムの初期の勧告に従ったものであり、[18] IBM が内部的に定義し、U+F83D~F8FF の範囲を使用する、より大規模な企業私的使用領域スキームの一部です。[19] [20]
先頭バイト 0x9A~9D (拡張記号と漢字)
1992年の仕様によれば、この範囲全体がユーザー定義である。[11]ただし、IBMがICUに寄贈したコーデックに実装されているように、0x9AA1から0x9AA5がユーザー定義範囲の終わりです。この範囲の残りの部分には、コードページ933に含まれるが万城コードには含まれないハングル以外の文字が含まれます。0x9AA6から0x9AABには、さまざまな技術記号や数学記号が含まれます。残りの部分には、KS X 1001に含まれるものに加えて漢字が含まれますが、一部はIBMによって私的使用領域にマッピングされています。[12]
先頭バイト 0x9E–A0 (拡張漢字およびハングル音節)
1992年の仕様によれば、この範囲全体はユーザー定義である。[11] IBMがICUに寄贈したコーデックに実装されているように、0x9EA1から0x9EACには拡張漢字の残りが含まれている。残りの範囲には、純粋なEUC-KRの合成済み形式では利用できない追加のハングル音節がいくつか含まれている。統一ハングルコードとは異なり、これは万成コードに存在しないすべての非部分的Johab音節をサポートするには不十分である。[12]
これらのうち重要なのは、뢔 (0x9EFC)、쌰 (0x9FE6)、쎼 (0x9FED)、쓔 (0x9FF3)、쬬 (0xA0C1) です。これらは、入力方式エディターで部分的に入力された場合、それぞれ標準の万城字の 뢨、썅、쏀、쓩、쭁 の始まりに対応します。
先頭バイト 0xA1~C8、0xCA~FD (標準 Wansung)
参照
脚注
- ^ これはIPAサポートには含まれません。むしろ、コードページ933では、SO 0x4160はスラッシュで表示される不等号であり、IBM-933 SO 0x418Dはバックスラッシュで表示される不等号です(つまり=⃥)。[11]通常の不等号GCGID SA540080( SA540000の全角)にマッピングされているのはIBM-933 SO 0x4160ですが、EUC-KRとIBM-949 0xA1C1にマッピングされているのはIBM-933 SO 0x418Dです。[11]これは、KS C 5601-1987の不等号の参照グリフでもバックスラッシュで示されているためです。[23]したがって、EUC-KRにマッピングされ、したがってIBM-949 0xA1C1にマッピングされるU+2260はIBM-933 SO 0x418Dにマッピングされ、IBM-933 SO 0x4160(したがってIBM-949 0x9AA6)はU+01C2の視覚的に類似した文字にマッピングされることになります。[24]
- ^ IBMからのマッピングはU+5231 刱ですが、IBM文書CH 3-3220-125 1992-09のグリフはU+5259 剙(ホストコード62D5)に近いです。[11]
参考文献
- ^ ab Borgendale, Ken. 「OS/2 コードページとキーボード表示ツール」
- ^ van Kesteren, Anne、「5. インデックス (§ インデックス EUC-KR)」、Encoding Standard、WHATWG、
これは、KS X 1001 標準および Unified Hangul Code (一般的には Windows コードページ 949 として知られている) と一致します。
- ^ アン・ファン・ケステレン。 「4.2. 名前とラベル」。エンコーディング標準。なんてことだ。
- ^ abcde 「コンバータ エクスプローラ: ibm-949_P110-1999 (別名 x-IBM949)」、International Components for Unicode、Unicode コンソーシアム
- ^ ab 「Converter Explorer: ibm-949_P11A-1999 (alias x-IBM949C)」、International Components for Unicode、Unicode Consortiumこれは IBM-949 の ASCII ベース バージョンです。
- ^ "windows-949-2000", Converter Explorer、Unicode の国際コンポーネント
- ^ 「codecs — コーデック レジストリと基本クラス § 標準エンコーディング」。Python 3.7.2 ドキュメント。Python Software Foundation。
- ^ abc 「コード化文字セット識別子: CCSID 949」。IBM Globalization。IBM 。 2014年11月29日時点のオリジナルよりアーカイブ。
- ^ 「CCSID 1088 情報文書」。2016 年 3 月 26 日時点のオリジナルよりアーカイブ。
- ^ 「コード ページ 951 情報ドキュメント」。2017 年 1 月 16 日時点のオリジナルよりアーカイブ。
- ^ abcdefghijk 「IBM Korean Graphic Character Set: DBCS-Host and DBCS-PC」(PDF) . IBM . 2001 [1992]. CH 3-3220-125 1992-09.
- ^ abcdefghij 国際 Unicode コンポーネント (ICU)、ibm-949_P110-1999.ucm、2002-12-03
- ^ 「コード化文字セット識別子: CCSID 934」。IBM Globalization。IBM 。2014年12月2日時点のオリジナルよりアーカイブ。
- ^ ab 「コード化文字セット識別子: CCSID 944」。IBM Globalization。IBM 。 2014年12月1日時点のオリジナルよりアーカイブ。
- ^ Viswanadha, Ram (2001-11-01). 「ICU-1281 不要な ucmfiles を削除する」. International Components for Unicode .
- ^ コードページ CPGID 01088 (pdf) (PDF)、IBM
- ^ コードページ CPGID 01088 (txt)、IBM
- ^ 「2.0: Unicode 1.0 の変更点」(PDF)。Unicode標準、バージョン 1.1。Unicodeコンソーシアム。pp. 3~4。UTR #4。
- ^ ab "CPGID 01449: IBM デフォルト PUA". IBM グローバリゼーション: コード ページ識別子. IBM . 2015-09-16 にオリジナルからアーカイブ。IBM
は、U+F83D から U+F8FF までの 195 の位置を IBM コーポレート ゾーンとして使用するために指定しており、IBM 文字のラウンドトリップ整合性を維持する必要があるときはいつでも、IBM 内で一貫してそれらを使用する予定です。
- ^ IBM (1997). unicode.nam: Unicode 文字を IBM または PostScript のような名前を使用して指定できるようにします。( Borgendale、Ken、OS/2 コードページおよびキーボード表示ツールに含まれています))
- ^ "ibm-933_P110-1995.ucm". Unicodeの国際コンポーネント。
- ^ 私的使用領域にマッピングされた漢字は、コードチャートから識別されます。IBM ドキュメント CH 3-3220-125 1992-09 には、コード ページ 933の 2 バイト コンポーネントとして使用されるコード ページと、これらの拡張機能のないコード ページ 949 の旧バージョンのコード ページのコード チャートが記載されています。ただし、このセクションの漢字は、表 7 の「PC コード」が記載されていないサブセットに対応しています (順序も同じです)。[11]企業私的使用領域のマッピングは、コード ページ 933 を含む他のコード ページ[19]とも調整されており、[21]これを使用して、特定の企業私的使用領域マッピングの「ホスト コード」を取得できます。
- ^ 韓国標準局 (1988-10-01). 情報交換のための韓国語グラフィック文字セット(PDF) . ITSCJ/ IPSJ . ISO-IR -149.
- ^ "ibm-933_P110-1995 (リードバイト 0E41)"。Converter Explorer。International Components for Unicode。
