No.221 | 投稿日時: | 2004/10/07(木) 04:27 <↑親記事:No.211> |
投稿者: | 森山 将之 |
Windows 2000 の WideCharToMultiByte() で CP20932 を調べた結果、コード範囲は、次のようになっていました。
1バイトコード
0x00〜0x7F US-ASCII
2バイトコード
1バイト目 0x8E 2バイト目 0xA1〜0xDF JIS X 0201 片仮名
1バイト目 0xA1〜0xFE 2バイト目 0xA1〜0xFE JIS X 0208 + α
1バイト目 0xA1〜0xFE 2バイト目 0x21〜0x7E JIS X 0212 + β
α = NEC特殊文字(CP932 13区) + ユーザー定義文字(CP932 95区〜104区)
β = IBM拡張文字 - JIS X 0212 + ユーザー定義文字(CP932 105区〜114区)
2バイトコードにエンコードされている JIS X 0212 を EUC-JP の 3バイトコードにしてやれば、eucJP-open (eucJP-ascii) になりそうです(全文字調べたわけではありません)。JIS X 0208 の「〜」は WAVE DASH U+301C に変換されます。
よって、CP20932 は
・EUC-JP に似ているが EUC-JP とは異なる独自エンコーディングである。
・CP20932 (eucJP-ascii モドキ) ⇔ CP932 の変換は、一部変換できない文字がある。
という事で、実際に使用するのは問題アリでしょう。
(問題アリで『使えない』と判断していますので、突っ込んだ解析は行っていません。)
【参考】
Code-Page Identifiers
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/intl/unicode_81rn.asp
eucJP-open についての説明
http://www.opengroup.or.jp/jvc/cde/sjis-euc.html
eucJP-open と UCS との間のコード変換規則
http://www.opengroup.or.jp/jvc/cde/appendix.html
eucJP-ms
http://www2d.biglobe.ne.jp/~msyk/charcode/cp932/eucJP-ms.html