[9] コードページは、 Microsoft や IBM のシステムにおける文字コード群 (の識別子) です。
[7] あんまりあてにしないで下さい。 まとまった情報が (特に M$ については) ないんでこまります。
| No | Microsoft | IBM | misc |
|---|---|---|---|
| CP037 | (EBCDIC) | ||
| CP273 | (EBCDIC) | ||
| CP424 | (EBCDIC) | ||
| CP437 | MS-DOS US (OEM) | DOS US | |
| CP500 | (EBCDIC) | ||
| CP708 | ASMO 708 (OEM) | ||
| CP709 | ASMO 449+, BCON V4 (OEM) | ||
| CP710 | Transparent Arabic (OEM) | ||
| CP720 | Transparent ASMO (OEM) | ||
| CP737 | Greek (旧437G) (OEM) | Greek | |
| CP775 | バルト語 (OEM) | ||
| 813 | ISO/IEC8859-7 | ISO/IEC8859-7 | |
| 838 | |||
| CP850 | MS-DOS 多言語 (Latin I) (OEM) | ? | |
| CP852 | MS-DOS スラブ語 (Latin II) (OEM) | ||
| CP855 | IBM キリル語 (OEM) | ||
| CP857 | IBM トルコ語 (OEM) | ||
| CP860 | MS-DOS ポルトガル語 (OEM) | ||
| CP861 | MS-DOS アイスランド語 (OEM) | ||
| CP862 | MS-DOS ヘブライ語 (OEM) | IBM 862 | |
| CP863 | MS-DOS カナダ系フランス語 (OEM) | ||
| CP864 | アラビア語 (OEM) | IBM 864 | |
| CP865 | MS-DOS 北欧語 (OEM) | ||
| CP866 | MS-DOS ロシア語 (OEM) | IBM 866 | |
| CP869 | IBM 現代ギリシャ語 (OEM) | ||
| CP874 | タイ語 (TIS 620 のようなもの、改訂あり) (OEM / ANSI) | TIS 620 | |
| CP875 | X-EBCDIC-GreekModern | (EBCDIC) | |
| CP901 | (ISO/IEC 8859-13) | ||
| CP902 | (CP922 に近いがユーロ記号あり) | ||
| 912 | ISO/IEC8859-2 | ||
| 913 | ISO/IEC8859-3 | ||
| 914 | ISO/IEC8859-4 | ||
| 915 | ISO/IEC8859-5 | ||
| 916 | ISO/IEC8859-8 | ||
| 920 | ISO/IEC8859-9 | ||
| 921 | |||
| CP922 | (ISO/IEC 8859-1 の一部改変) | ||
| 923 | ISO/IEC8859-15 | ||
| 930 | |||
| CP932 | 日本語 (マイクロソフト標準キャラクタセット) (OEM / ANSI) | ||
| 935 | |||
| CP936 | 中国語 (簡体字) (GBK、改訂あり) (OEM / ANSI) | ||
| 939 | |||
| 942 | IBM 942 | ||
| 943 | シフトJIS | ||
| CP949 | 韓国語 (UHC、改訂あり) | KS X 1001 完成型 | |
| CP950 | 中国語 (伝統字) (Big5 の一種、改訂あり) (OEM / ANSI) | Big5-euro | |
| 951 | ? Big5-HKSCS | ||
| 964 | EUC-TW | ||
| 970 | EUC-KR | ||
| 1004 | Windows-1252 -euro | ||
| 1006 | |||
| 1025 | |||
| 1046 | |||
| 1089 | ? ISO/IEC8859-6 | ||
| 1097 | |||
| 1098 | |||
| 1112 | |||
| 1122 | |||
| 1123 | |||
| 1124 | |||
| CP1140 | X-EBCDIC-US-EURO | (EBCDIC) | |
| CP1141 | X-EBCDIC-Germany-EURO | (EBCDIC) | |
| 1142 | X-EBCDIC-DenmarkNorway-EURO | (EBCDIC) | |
| 1143 | X-EBCDIC-FinlandSweden-EURO | (EBCDIC) | |
| 1144 | X-EBCDIC-Italy-EURO | (EBCDIC) | |
| 1145 | X-EBCDIC-Spain-EURO | (EBCDIC) | |
| 1146 | X-EBCDIC-UK-EURO | (EBCDIC) | |
| 1147 | X-EBCDIC-France-EURO | (EBCDIC) | |
| CP1148 | X-EBCDIC-International-EURO | (EBCDIC) | |
| 1149 | X-EBCDIC-Icelandic-EURO | (EBCDIC) | |
| 1161 | TIS620+euro | ||
| 1162 | TIS620+euro | TIS620+euro | |
| CP1200 | Unicode (UCS-2LE、後 UTF-16LE) (ANSI) | UTF-16LE | |
| 1201 | UTF-16BE | ||
| CP1250 | Windows 3.1 東欧 (ANSI) | ||
| CP1251 | Windows 3.1 キリル文字 (改訂あり) (ANSI) | ||
| CP1252 | Windows 3.1 Latin I (改訂あり) (ANSI) | Windows-1252 | |
| CP1253 | Windows 3.1 希臘語 (改訂あり) (ANSI) | ||
| CP1254 | Windows 3.1 トルコ語 (改訂あり) (ANSI) | ||
| CP1255 | ヘブライ語 (改訂あり) (ANSI) | ||
| CP1256 | アラビア語 (改訂あり) (ANSI) | ||
| CP1257 | バルト語 (改訂あり) (ANSI) | ||
| CP1258 | Windows-1258 (改訂あり) (ANSI) | ||
| 1208 | UTF-8 | ||
| CP1361 | 韓国語 (KS X 1001 組合型) (OEM) | ||
| 1381 | |||
| 1383 | EUC-CN | ||
| 1370 | Windows-950+euro | ||
| 1386 | GBK | ||
| 1394 | Shift_JISX0213 | ||
| 2022 | ? ISO/IEC2022 | ||
| 4049 | ISO/IEC8859-7 | ||
| 9066 | TIS620 | ||
| 10000 | MacRoman | ||
| 10001 | MacJapanese | ||
| 10002 | MacChineseTrad | ||
| 10003 | MacKorean | ||
| 10004 | MacArabic | ||
| 10005 | MacHebrew | ||
| 10006 | MacGreek | ||
| 10007 | MacCyrillic | ||
| 10008 | MacChineseSimp | ||
| 10029 | MacCentralEurope | ||
| 10079 | MacIcelandic | ||
| 10081 | MacTurkish | ||
| 13488 | UTF-16 | ||
| 17584 | UTF-16 | ||
| 20000 | X-Chinese-CNS | ||
| 20002 | Big5 倚天 | ||
| 20127 | ASCII | ||
| 20269 | ? | ||
| 20273 | X-EBCDIC-Germany | ||
| 20277 | X-EBCDIC-DenmarkNorway | ||
| 20278 | X-EBCDIC-FinlandSweden | ||
| 20280 | X-EBCDIC-Italy | ||
| 20284 | X-EBCDIC-Spain | ||
| 20285 | X-EBCDIC-UK | ||
| 20290 | X-EBCDIC-JapaneseKatakana | ||
| 20420 | X-EBCDIC-Arabic | ||
| 20423 | X-EBCDIC-Greek | ||
| 20424 | X-EBCDIC-Hebrew (IBM424) | ||
| 20833 | X-EBCDIC-KoreanExtended | ||
| 20838 | X-EBCDIC-Thai | ||
| 20866 | KOI8-R | ||
| 20871 | X-EBCDIC-Icelandic | ||
| 20880 | X-EBCDIC-CyrillicRussian | ||
| 20905 | X-EBCDIC-Turkish | ||
| 20949 | EUC-KR | ||
| 21025 | X-EBCDIC-CyrillicSerbianBulgarian | ||
| 21866 | KOI8-U | ||
| 25546 | ? | ||
| 28591 | ISO/IEC8859-1 | ||
| 28592 | ISO/IEC8859-2 | ||
| 28593 | ISO/IEC8859-3 | ||
| 28594 | ISO/IEC8859-4 | ||
| 28595 | ISO/IEC8859-5 | ||
| 28596 | ISO/IEC8859-6 | ||
| 28597 | ISO/IEC8859-7 | ||
| 28598 | ISO/IEC8859-8 | ||
| 28599 | ISO/IEC8859-9 | ||
| 28605 | ISO/IEC8859-15 | ||
| 29001 | X-Europa | ||
| 29105 | X-IA5 | ||
| 29106 | X-IA5-German | ||
| 29107 | X-IA5-Swedish | ||
| 29108 | X-IA5-Norwegian | ||
| 33722 | EUC-JP | ||
| 38598 | ISO-8859-8-I | ||
| 50000 | X-User-Defined | ||
| 50001 | _AutoDetect_all | ||
| 50220 | ISO-2022-JP | ||
| 50221 | _ISO-2022-JP$ESC | ||
| 50222 | _ISO-2022-JP$SIO | ||
| 50225 | ISO-2022-KR | ||
| 50930 | X-EBCDIC-JapaneseAndKana | ||
| 50931 | X-EBCDIC-JapaneseAndUSCanada | ||
| 50932 | JISAUTO | ||
| 50933 | X-EBCDIC-KoreanAndKoreanExtended | ||
| 50935 | X-EBCDIC-SimplifiedChinese | ||
| 50937 | X-EBCDIC-TraditionalChinese | ||
| 50939 | X-EBCDIC-JapaneseAndJapaneseLatin | ||
| 50949 | _AutoDetect_kr | ||
| CP51932 | EUC-JP のようなもの (改訂あり) | ||
| 51936 | EUC-CN | ||
| 51949 | EUC-KR | ||
| 52936 | HZ-GB-2312 | ||
| 54936 | GB18030 | ||
| 57002 | X-ISCII-de | ||
| 57003 | X-ISCII-be | ||
| 57004 | X-ISCII-ta | ||
| 57005 | X-ISCII-te | ||
| 57006 | X-ISCII-as | ||
| 57007 | X-ISCII-or | ||
| 57008 | X-ISCII-ka | ||
| 57009 | X-ISCII-ma | ||
| 57010 | X-ISCII-gu | ||
| 57011 | X-ISCII-pa | ||
| 65000 | UTF-7 | ||
| 65001 | UTF-8 |
注: 表にある名前は、内容のほぼ同じである符号の IANA などでの名称を主に示している。必ずしも同一ではない。
[83] Codepages: Comprehensive list, Aivosto, , https://www.aivosto.com/articles/charsets-codepages.html
KSX1001 完成型を元にした符号。 EUC-KR に相当する。
MS949 はシフトJIS的に拡張して UHC。 更に後に KS X 1001:1998 に追随して EURO SIGN と REGISTERD SIGN を追加している。
MS20949 と MS51949 の違いは不明。 IUC の表に拠ると同一。
元々は両者とも UCS-2 相当だったが、 Unicode にサロゲート・ペアが導入されたのに伴い UTF-16 相当に。
Windows では EURO SIGN が追加されましたが、番号は変わっていません。
| 番号 | 名前 | 元になった規格 |
| 874 | Thai | TIS620 |
| 932 | Japanese Shift-JIS | JISX0208 |
| 936 | Simplified Chinese GBK | GB2312 |
| 949 | Korean | KSX1001 |
| 950 | Traditional Chinese Big5 | Big5 |
| 1250 | Central Europe | |
| 1251 | Cyrillic | |
| 1252 | Latin I | ISO/IEC8859-1 |
| 1253 | Greek | |
| 1254 | Turkish | |
| 1255 | Hebrew | |
| 1256 | Arabic | |
| 1257 | Baltic | |
| 1258 | Viet Nam |
[27] コードページは一杯ありますが、 Windoze が実質的に support してるの (ANSIコードページ) はこれだけみたいです。
[28] M$ が相手にしている CodePage は IsValidCodePage の説明にあるみなさまらしい。上の表の倍くらいある。
[31] これに加えて、 WinIE などで使うのに、幾つかの IETF charset に CodePage 番号が振られている。
[22] なお、 Code Page 一般については Wiki page CodePage で扱い、 Windows の実装についてはこちらで扱います。 特定の CP について量が多い場合はそれを独立させましょう。
[87] Encoding Standard はこれら Windows 自体で ANSIコードページとして利用可能なすべてのコードページを符号化としています。 ただし、 Windows の実装とは一致しない部分もあります。
[90] Windows との厳密な互換性が求められない分野では Encoding Standard に従う実装を用いるのが良いでしょう。
[32] 一般によく知られていて使われているのは Unicode Consortium のサイトにある変換表 [UMAP] ですが、他の情報源 として M$ のサイトにある [GDEV] と [TYPO] もそれぞれ Unicode との対応を含んだ表があります。
[5] いずれも M$ 社の情報ではありますが、少し違いがあります。 [TYPO] は Windoze の API が実際に持っている変換表とおそらく 同じ情報を使っているようで、 Private Use Area との対応も 出てきます。 ([UMAP] とかに出てこないのは、 PUA との対応は 変換表に入れないという方針があるらしいです。)
[34] M$ の変換処理と同じであることを謳うであれば、 [TYPO] の情報も参考にして Windoze API を使った場合と同じ結果になる ようにするべきでしょう。事情があってそう出来ない場合であっても 少なくてもそう注記するのが望ましいと思われます。
[13] >>346 の [TYPO] の表は M$ site から削除されてしまいました。 重要だったのは 932, 936, 949, 950 ですが、いずれも web.archive.org から入手出来ます。
[14] >>13 削除されてしまった理由は分からないが、 Windows API の変換とおそらく同じ (ほんとうに全く同じかは、 各プラットフォーム毎に確認しないとわからないが。) 表としての価値は変わらないだろうから、変換表を作るときは 各実装者はこれらの情報を参考にしてほしい。
[24] >>14 Windows Me で MultiByteToWideChar, WideCharToMultiByte を使って調べた結果、 CP 932,936,949,950 とも [TYPO] と一致しますた。
[21] もちろん、一番あてになるのは実際の実装です。 ただ M$ の場合実装も資料も当てにならないのですが...
[51] [TYPO]と同じ形式の表が、Best Fit mappingという名前で2006年からUnicode.orgで公開されていたようです。
また2009年からMSのダウンロードセンターでも公開されているようです。
[MS-UCODEREF]経由で発見しました。
[30] Win95 (WindowsのNLSファイル (>>25)) と Win98 (WindowsのNLSファイル (>>26)) では、 「+0x8394 U+3094 <- # HIRAGANA LETTER VU」 のみ異なります。 (WindowsのNLSファイル (>>26) で追加)
[16] 936 の 0x80 は [TYPO] の表では U+0080 になってるけど、 Windows 2000 では EURO SIGN になる。 (いつかわったか不明)
-0x52 U+00AE <- # REGISTERED SIGN +0xA2E6 U+20AC # EURO SIGN +0xA2E7 U+00AE # REGISTERED SIGN
[17] [TYPO] の表と Windows 2000 ではこの3点が違う。 (いつ変わったか不明) (KSX1001:1998 に追随するもの。)
+0xA3E1 U+20AC # EURO SIGN
[18] [TYPO] の表と Windows 2000 はこれだけ違う。 (いつ変わったか不明)
[36] WindowsのNLSファイル (>>35) で発見された WinIE6 の変換表の追加。 (実際にいつの変換表から追加されたかは不明)
+0x30 U+0660 <- # ARABIC-INDIC DIGIT ZERO +0x31 U+0661 <- # ARABIC-INDIC DIGIT ONE +0x32 U+0662 <- # ARABIC-INDIC DIGIT TWO +0x33 U+0663 <- # ARABIC-INDIC DIGIT THREE +0x34 U+0664 <- # ARABIC-INDIC DIGIT FOUR +0x35 U+0665 <- # ARABIC-INDIC DIGIT FIVE +0x36 U+0666 <- # ARABIC-INDIC DIGIT SIX +0x37 U+0667 <- # ARABIC-INDIC DIGIT SEVEN +0x38 U+0668 <- # ARABIC-INDIC DIGIT EIGHT +0x39 U+0669 <- # ARABIC-INDIC DIGIT NINE +0xED U+06CC <- # ARABIC LETTER FARSI YEH
-0xC13F U+003F -> # QUESTION MARK ... -0xCF3F U+003F -> # QUESTION MARK
[48] Win2k = WindowsのNLSファイル (>>1) と WinXP = WindowsのNLSファイル (>>48) の間で、 >>47 の 0xC13F 〜 0xCF3F の15変換が消されている。 意図的なのかどうかよくわからないが。 (WindowsのNLSファイル (>>46) 参照。)
See CP20932
[57] Windows は Unicode符号位置のうちで、コードページの文字と直接対応関係にある文字以外でも、 似たUnicode文字をコードページの文字にと縮退します。
[58] Windows 以外のWindowsコードページの実装は、 Windows の実装を忠実に模倣するものもあれば、 直接対応関係にあるもののみしか対応していないものもあるので、 注意が必要です。
[23] Windows が実際に Code Page を実装しているのは *.nls というファイル群です。
[25] NLS の実態についての話は長くなったので分離しますた。 See WindowsのNLSファイル
[33] 2002-09-08 (Sun) 18:30:09 名無しさん : 同じ CodePage でも、ユーロの時に変更があったから、互換じゃないこともある。
[8] 2002-09-08 (Sun) 18:30:58 名無しさん : 上の表の対応する規格は、あくまで元になっているだけであって、一般にはその規格には適合しません。
[12] 2002-09-25 (Wed) 19:41:22 名無しさん : そういうことだからなんかあったらここに書いて欲しい。
[19] 2002-10-22 (火) 15:14 >>16-18: M$ の 1998 の表ではいずれも旧で、 Windows 2000 ではいずれも新。よって Windows 98 はおそらく旧。 Windows Me は不明。
[20] >>19 Windows Me ではいずれも旧でした。 (日本語版 WinMe ですが、他の言語版でも同じでしょう。) WindowsのNLSファイル (>>21) に NLS file 一覧を書きますた。
[43] 2002-11-11 (月) 20:05 CP20932:
[44] WindowsのNLSファイル (>>1) (Windows 2000) で調べた結果の CP20000 は、(他の資料に拠ると) 倚天版 Big5 になってるけど、倚天どころかどの Big5 とも合わない。そもそも第1水準・第2水準も配置が滅茶苦茶。 (HKU 版かとも思ったけど、それにしても全く異なる。) 文字集合的には Big5 らしいが・・・
[64] OEMコードページ ≒ DOS 時代に使われていたコードページです。
[65] 東アジアではOEMコードページ = ANSIコードページですが (番号が同じかつ符号構造が同じという意味で、 符号化文字集合として厳密に同じとは限らない)、 欧米等では基本的に両者が別物です。
[66] 欧米等の OEMコードページは ASCII を独自に拡張したもので、 国ごとに細かく分かれています。同じ国でも時期によって違うコードページを使っていた場合があります。 欧米等の ANSIコードページは OEMコードページとの互換性を捨てて、 複数の国をまとめた地域と言語群によって少数個に再編されています。
[67] 後方互換性のために Windows でも OEMコードページが使われる場面があります。
[68]
ZIPファイルのファイル名ではいくつかの国で今でもOEMコードページが使われています。
[91] Encoding Standard の符号化となっている OEMコードページは、 (ANSIコードページでもあるものと) IBM866 だけです。
[29] DOC/CPIDOS · master · FreeDOS Archive / FreeDOS Base / cpidos · GitLab, https://gitlab.com/FreeDOS/base/cpidos/-/tree/master/DOC/CPIDOS?ref_type=heads
[35] MS-DOS 等のコードページに加えて、5桁番号の独自のコードページを定義しています。
[37] dosbox-staging/contrib/resources/mapping/MAIN.TXT at main · dosbox-staging/dosbox-staging · GitHub, https://github.com/dosbox-staging/dosbox-staging/blob/main/contrib/resources/mapping/MAIN.TXT
[55]
ecma35lib
の
DECSPPCS :
65535 超に独自符号を割当。
[40] Aprotool TM tips collection, , http://hp.vector.co.jp/authors/VA002891/APROTIPS.HTM#tip2
[49] Aprotool TM Editor は ESC: 形式に対応していました。 >>40
[50]
付属ドキュメント (それ自体 ESC: 形式で書かれています。) によると、
「ESC : コードページ : 文字」
で1文字を表します。ただし前の文字と同じなら、「文字」
だけで表せます。しかし行頭では省略できません。
[52] 文字のレンダリングにおける言語に適したフォントの選択や、 ISO 2022 やTRONコードやUnicode言語タグとの相互変換にこのコードページ番号が使われていたようです。
[53] UTF-16BE, UTF-16LE, UTF-8 の計3種類があったようです。
[54]
ESC を表現できるのかどうか不明瞭ですが、
省略せずに ESC : コードページ
: ESC と書けばいいのでしょうか。
[4] WIN32 と UNICODE http://www-online.kek.jp/~keibun/win32prog/unicode.html
[6] 240596 – Add euro to 850, 852, 857, 862, 864 - update 862 with new codepoints ( 版) https://bugzilla.mozilla.org/show_bug.cgi?id=240596
[10]
I'm not a Klingon : A History of Code Pages or What Made Code Page XXXX (or many other computer things) The Way It Is? (2007-03-15 20:24:04 +09:00 版) http://blogs.msdn.com/shawnste/archive/2007/03/13/The-History-of-Code-Pages.aspx
[11] Download: WeightTables - Microsoft Download Center - Download Details ( ( 版)) http://www.microsoft.com/en-us/download/details.aspx?id=10921
[15] Hacking Code Pages, or "How to Totally Hose Your Machine AND Your Data". - I'm not a Klingon (<span style="font-family:pIqaD,code2000;"> </span>) - Site Home - MSDN Blogs ( ( 版)) http://blogs.msdn.com/b/shawnste/archive/2007/03/17/hacking-code-pages-or-how-to-totally-hose-your-machine-and-your-data.aspx
[56] dosbox-staging/contrib/resources/mapping/MAIN.TXT at 608ca8fb7869cc5e8c618c0e6204d15c2981cc92 · dosbox-staging/dosbox-staging · GitHub, https://github.com/dosbox-staging/dosbox-staging/blob/608ca8fb7869cc5e8c618c0e6204d15c2981cc92/contrib/resources/mapping/MAIN.TXT
[85] GitHub - NielsLeenheer/CodepageEncoder: Codepage conversion library for obscure codepages supported by thermal printers, https://github.com/NielsLeenheer/CodepageEncoder/tree/main
[86] Evertype: Unicode Mapping Tables, , https://www.evertype.com/standards/mappings/