[9] コードページは、 Microsoft や IBM のシステムにおける文字コード群 (の識別子) です。
[7] あんまりあてにしないで下さい。 まとまった情報が (特に M$ については) ないんでこまります。
No | Microsoft | IBM | misc |
424 | (EBCDIC) | ||
CP437 | MS-DOS US (OEM) | DOS US | |
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 | |
875 | X-EBCDIC-GreekModern | ||
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 | |||
922 | |||
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 | |||
1140 | X-EBCDIC-US-EURO | (EBCDIC) | |
1141 | 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) | |
1148 | 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 などでの名称を主に示している。必ずしも同一ではない。
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 してるのはこれだけみたいです。
[28] M$ が相手にしている CodePage は IsValidCodePage の説明にあるみなさまらしい。上の表の倍くらいある。
[31] これに加えて、 WinIE などで使うのに、幾つかの IETF charset に CodePage 番号が振られている。
[22] なお、 Code Page 一般については Wiki page CodePage で扱い、 Windows の実装についてはこちらで扱います。 特定の CP について量が多い場合はそれを独立させましょう。
[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 はこれだけ違う。 (いつ変わったか不明)
[29] EURO 追加の前後の変化 (Win95 (WindowsのNLSファイル (>>25)) と Win98 (WindowsのNLSファイル (>>26)) での調査結果)
-0x01 U+263A <- # WHITE SMILING FACE -0x02 U+263B <- # BLACK SMILING FACE -0x03 U+2665 <- # BLACK HEART SUIT -0x04 U+2666 <- # BLACK DIAMOND SUIT -0x05 U+2663 <- # BLACK CLUB SUIT -0x06 U+2660 <- # BLACK SPADE SUIT -0x08 U+25D8 <- # INVERSE BULLET -0x09 U+25CB <- # WHITE CIRCLE -0x0A U+25D9 <- # INVERSE WHITE CIRCLE -0x0B U+2642 <- # MALE SIGN -0x0C U+2640 <- # FEMALE SIGN -0x0D U+266A <- # EIGHTH NOTE -0x0E U+266B <- # BEAMED EIGHTH NOTES -0x10 U+25BA <- # BLACK RIGHT-POINTING POINTER -0x11 U+25C4 <- # BLACK LEFT-POINTING POINTER -0x12 U+2195 <- # UP DOWN ARROW -0x13 U+203C <- # DOUBLE EXCLAMATION MARK -0x16 U+25AC <- # BLACK RECTANGLE -0x17 U+21A8 <- # UP DOWN ARROW WITH BASE -0x18 U+2191 <- # UPWARDS ARROW -0x19 U+2193 <- # DOWNWARDS ARROW -0x1A U+2192 <- # RIGHTWARDS ARROW -0x1B U+2190 <- # LEFTWARDS ARROW -0x1C U+221F <- # RIGHT ANGLE -0x1D U+2194 <- # LEFT RIGHT ARROW -0x1E U+25B2 <- # BLACK UP-POINTING TRIANGLE -0x1F U+25BC <- # BLACK DOWN-POINTING TRIANGLE -0x5A U+017D <- # LATIN CAPITAL LETTER Z WITH CARON -0x7A U+017E <- # LATIN SMALL LETTER Z WITH CARON -0x80 U+0080 # <control> +0x80 U+20AC # EURO SIGN -0x8E U+008E # <control> +0x8E U+017D # LATIN CAPITAL LETTER Z WITH CARON -0x9E U+009E # <control> +0x9E U+017E # LATIN SMALL LETTER Z WITH CARON +0xA2 U+20A1 <- # COLON SIGN
[35]
Webにおける文字コードの US-ASCII
や ISO-8859-1
は
Windows-1252
です。
[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 らしいが・・・
[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