コードページ949(IBM)

IBMコードページ949
IBM-949コードページのレイアウト
別名
  • IBM-949、x-IBM949
  • ASCIIベース:IBM-949C、x-IBM949C、cp949c
  • UHCで曖昧:949、cp949
言語韓国語
作成者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はWindowsコードページ949 (IBM-1363)とは異なります。Windowsコードページ949はMicrosoftの統一ハングルコードであり、EUC-KRの別の拡張です。また、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]また、 0x20~7EにASCIIマッピングをそのまま使用する(バックスラッシュのマッピングが重複する)バリアントを指すのに「cp949c」、「ibm-949c」、「x-IBM949C」というラベルが使用されています[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は、シングルバイトのコードページ1088とダブルバイトのコードページ951という2つの固定幅コードページの組み合わせとして定義された可変幅エンコーディングです。[8] [9] [10]

歴史

IBM-949 の 2 バイト構成要素であるコード ページ 951 (DBCS-PC、すなわち 2 バイトの非EUCEBCDICコード) のバージョンは、コード ページ 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]

IBMコードページ934および944
言語韓国語
拡張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]国際Unicode構成要素(International Components for Unicode)には、IBM-949 [4] [12]とIBM-933のUnicodeマッピングが含まれていますが、IBM-944のマッピングは2001年に削除されました。 [15]

シングルバイトコード

IBMコードページ949(シングルバイト構成要素:1088)[16] [17 ] [4 ] [5] [12]
0123456789ABCDEF
0xNUL
1x
2x SP "#$%&'*+,-
3倍0123456789;<
4倍@ABCDEFGHIJKLMNO
5倍PQRSTUVWXYZ[]^_
6倍`abcdefghijklmno
7倍pqrstuvwxyz{|}~
8倍¢¬\‾<ex​​tra_id_1> U+00A6 破線UDC9倍
909192939495969798999A9B9C9D9E9FAx
A01-_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-_41-_42-_43-_44-_45-_46-_47-_
48-_48-_49-_50-_51-_52-_53-_54-_55-_56-_57-_58-_59-_60-_61-_62-_63-_
64-_64-_65-_66-_67-_68-_69-_70-_71-_72-_73-_74-_75-_76-_77-_78-_79-_
80-_80-_81-_82-_83-_84-_85-_86-_87-_88-_89-_90-_91-_92-_93-_94-_
 ダブルバイトコード

先頭バイト 0x8F~99、0xC9、0xFE(ユーザー定義の範囲)

IBM-949は、最大1880個のUDC(ユーザー定義文字)をサポートするように設計されています。 [ 8 ]これには、Wansungプレーンのユーザー定義行(リードバイト0xC9と0xFE)と、Wansungプレーン外の範囲が含まれます。このバージョンでは、リードバイト0x8F~A0には最大1692個のUDCが含まれ、リードバイト0xC9と0xFEにはそれぞれ最大94個のUDCが含まれます(つまり、トレイルバイト0xA1~FEが含まれます)。 [ 11 ]ただし、 IBM-933の2バイトレパートリー全体をサポートするための拡張機能が実装されると、リードバイト0x9A~A0が使用されるため、ユーザー定義に残される最大文字数は少なくなります。 [ 4 ] [ 12 ]

IBM-949は、最大1880個のUDC(ユーザー定義文字)をサポートするように設計されています。[8]これには、Wansungプレーンのユーザー定義行(リードバイト0xC9と0xFE)と、Wansungプレーン外の範囲が含まれます。このバージョンでは、リードバイト0x8F~A0には最大1692個のUDCが含まれ、リードバイト0xC9と0xFEにはそれぞれ最大94個のUDCが含まれます(つまり、トレイルバイト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]

IBMコードページ949(拡張記号と漢字)[12] [22]
0123456789ABCDEF
9AAxǂ [a]U+2267 〜より大きい 〜より大きい 〜に等しいU+212A ケルビン記号U+02BA 修飾文字 ダブルプライムU+F843 私用 / U+5580 CJK 表意文字
9ABx
9ACx
9ADx距離
9AEx
9AFx
9BAx祿窿
9BBx
9BCx
9BDx遍在遠く
9BEx巿
9BFx
9CAx婿洗う
9CBx宿
9CCx
9CDx羨望
9CExバンド
9CFx見る潜む
9DAx装い窃盗
9DBx吊り
9DCx慚[b]9DDx
9DEx
9DFx

先頭バイト 0x9E–A0 (拡張漢字とハングル音節)

1992年の仕様によると、この範囲全体はユーザー定義です。[11] IBMがICUに寄贈したコーデックに実装されているように、0x9EA1から0x9EACには拡張漢字の残りが含まれています。残りの範囲には、純粋なEUC-KRでは事前合成形式では利用できない、いくつかの追加のハングル音節が含まれています。統合ハングルコードとは異なり、これは万声コードにはないすべての非部分的Johab音節をサポートするには不十分です。[12]

これらの中で重要なのは、뢔(0x9EFC)、쌰(0x9FE6)、쎼(0x9FED)、쓔(0x9FF3)、쬬(0xA0C1)で、これらは入力方式エディタで部分的に入力された場合、それぞれ標準の万声文字である뢨、썅、쏀、쓩、쭁の先頭に対応します

IBMコードページ949(拡張漢字およびハングル音節)[12]
0123456789ABCDEF
9EAxまで
9EBx
9ECx꾿
9EDx
9FAx
9FBx
9FCx뻿
9FDx
9FEx
9FEx
9FFx
A0Ax
A0Bx
A0Cx찿
A0Dx
A0Exピンピンピンピンピンピンピンピンピンピンピンピンピンピンピンピン
リードバイト 0xA1~C8、0xCA~FD(標準Wansung)参照LMBCS-17コードページ951Windows-949脚注^これは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 Codepage and Keyboard Display Tools".^ van Kesteren, Anne 、「5. インデックス(§ インデックス EUC-KR)」、エンコード標準、WHATWG。これは、KS X 1001標準および統合ハングルコード(一般的にはWindowsコードページ949として知られている)と一致します。^ van Kesteren, Anne 、「4.2. 名前とラベル」、エンコード標準、WHATWG。^ abcde 「コンバーター・エクスプローラー:ibm-949_P110-1999(エイリアス x-IBM949)」、 International Components for Unicode 、 Unicode Consortium^ ab 「コンバーター・エクスプローラー:ibm-949_P11A-1999(エイリアス x-IBM949C)」、 International Components for Unicode 、 Unicode ConsortiumこれはIBM-949のASCIIベースバージョンです^ 「windows-949-2000」、 Converter Explorer 、International Components for Unicode

^ 「codecs — コーデックレジストリと基本クラス § 標準エンコーディング」。Python 3.7.2 ドキュメント。Python Software Foundation。

^ 「コード化文字セット識別子:CCSID 949」。IBM Globalization。IBM 。 2014年11月29日時点のオリジナルからのアーカイブ。

Footnotes

  1. ^ This is not included for IPA support. Rather, in Code page 933, 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]
  2. ^ 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]

参考文献

  1. ^ a b Borgendale, Ken. "OS/2 Codepage and Keyboard Display Tools".
  2. ^ 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.
  3. ^ van Kesteren, Anne. "4.2. Names and labels". Encoding Standard. WHATWG.
  4. ^ a b c d e "Converter Explorer: ibm-949_P110-1999 (alias x-IBM949)", International Components for Unicode, Unicode Consortium
  5. ^ a b "Converter Explorer: ibm-949_P11A-1999 (alias x-IBM949C)", International Components for Unicode, Unicode Consortium. これはIBM-949のASCIIベースバージョンです。
  6. ^ "windows-949-2000", Converter Explorer, International Components for Unicode
  7. ^ "codecs — Codec registry and base classes § Standard Encodings". Python 3.7.2 documentation. Python Software Foundation.
  8. ^ a b c "Coded character set identifiers: CCSID 949". IBM Globalization. IBM. Archived from the original on 2014-11-29.
  9. ^ "CCSID 1088 information document". Archived from the original on 2016-03-26.
  10. ^ 「コードページ951情報文書」。2017年1月16日時点のオリジナルからアーカイブ。
  11. ^ abcdefghijk 「IBM Korean Graphic Character Set: DBCS-Host and DBCS-PC」(PDF)。IBM 。2001 [1992]。CH 3-3220-125 1992年9月。
  12. ^ abcdefghij International Components for Unicode (ICU)、ibm-949_P110-1999.ucm、2002年12月3日。
  13. ^ 「コード化文字セット識別子:CCSID 934」。IBM Globalization。IBM 2014年12月2日時点のオリジナルからアーカイブ。
  14. ^ ab 「コード化文字セット識別子:CCSID 944」。IBM Globalization。IBM 2014年12月1日時点のオリジナルからアーカイブ
  15. ^ Viswanadha, Ram (2001-11-01). 「ICU-1281 不要なucmfilesの削除」. International Components for Unicode .
  16. ^ コードページ CPGID 01088 (pdf) (PDF) , IBM
  17. ^ コードページ CPGID 01088 (txt), IBM
  18. ^ 「2.0:Unicode 1.0の変更点」(PDF) . Unicode標準 バージョン1.1 . Unicodeコンソーシアム. pp.  3– 4. UTR #4
  19. ^ ab "CPGID 01449: IBM デフォルト PUA". IBM グローバリゼーション:コードページ識別子. IBM . 2015年9月16日にオリジナルからアーカイブ。IBMは、U+F83DからU+F8FFまでの195の位置をIBMコーポレートゾーンとして使用するために指定しており、IBM文字のラウンドトリップ整合性を維持する必要があるときはいつでも、IBM社内で一貫して使用することを意図しています。
  20. ^ IBM (1997). unicode.nam: Unicode文字をIBMまたはPostScriptのような名前で指定できるようにします( Borgendale, Ken, OS/2 Codepage and Keyboard Display Toolsに含まれています
  21. ^ "ibm-933_P110-1995.ucm". International Components for Unicode
  22. ^ 私的使用領域にマッピングされた漢字は、コードチャートから識別されます。IBM文書CH 3-3220-125 1992-09には、コードページ933およびこれらの拡張機能のない旧バージョンのコードページ949の2バイト要素として使用されるコードページのコードチャートが記載されています。ただし、このセクションの漢字は、表7の「PCコード」が記載されていないサブセットに対応しており(順序も同じです)、そのサブセットと同じ順序になっています。[11]企業私的使用領域のマッピングは、コードページ933を含む他のコードページ[19]とも連携しており、 [21]特定の企業私的使用領域マッピングの「ホストコード」を取得するために使用できます。
  23. ^ 韓国標準局 (1988-10-01). 韓国語情報交換用グラフィック文字セット(PDF) . ITSCJ/ IPSJ . ISO-IR -149.
  24. ^ "ibm-933_P110-1995 (リードバイト 0E41)". Converter Explorer . Unicodeの国際コンポーネント.
「https://en.wikipedia.org/w/index.php?title=Code_page_949_(IBM)&oldid=1273373642#History」より取得