`
ehilcoder
  • 浏览: 49205 次
社区版块
存档分类
最新评论

Shift_JIS<>CP932=MS932=Windows-31J

阅读更多

转载地址:http://una.soragoto.net/topics/13.html

 

Windows標準の文字コードはShift_JISではなく、Windows-31Jです。
 それらの違いやCP932、MS932といった用語もあわせて整理してみましょう。

 まずはShift_JIS
 これは日本語の文字集合を符号化する文字符号化方式のうちの一つです。
 Microsoftにより、MS-DOSの標準日本語コードとして採用され、CP932という管理番号を与えられるとともに独自の拡張が行われました。

 MicrosoftはこのCP932を独自に拡張することを、OEMメーカー(MS-DOSを搭載したパソコンを販売するメーカー)に許していたため、各OEMメーカーごとに異なる拡張が行われました。

 その後、MicrosoftはWindows3.1の日本語版を出すにあたり、OEMメーカーにCP932の独自拡張を許すという方針を撤回し、当時、日本のパソコン市場で特に大きなシェアを持っていたIBMとNECによって独自に拡張されたCP932を統合し、これをWindowsにおける日本語標準コードとしました。

 Windowsの日本語標準コードとなったCP932は、IANA(インターネットに関連する番号を管理する組織)にWindows-31Jという名前で登録されました。

 Javaの世界では、IBMのCP932とWindows-31Jを区別するために、MS932という用語が使われます。

 

図1


 上の図からもわかるように、「CP932」、「MS932」、「Windows-31J」は同じものをさしています。そしてそれは「Shift_JIS」とは異なるものですが、実際には「Windows-31J」をさす場合に「Shift_JIS」という言葉が使われることが多々あります。

 たいていの場合はそれで問題ないかもしれませんが、プログラミングにおいて、文字コードに「Windows-31J」と指定すべきところを、「Shift_JIS」と指定したがゆえに、文字化けを引き起こすことがあります。「Windows-31J」で定義されている文字が「Shift_JIS」にはない場合です。

 プログラミングをする場合にはしっかりおさえておきたいところです。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics