Shift_JISとCP932・Windows-31Jの違い
業務仕様の「Shift_JIS」は、Windowsで一般的なCP932/Windows-31Jを指している場合があります。しかし、規格上のShift_JISとMicrosoft拡張を含むCP932は、完全に同じ文字集合ではありません。「Shift_JIS対応」という名前だけで判断すると、環境依存文字や変換結果で食い違いが起きます。
| 呼び方 | 概要 | 確認点 |
|---|---|---|
| Shift_JIS | 日本語向けの歴史的な符号化方式 | どの規格・変換表を指すか |
| CP932 | MicrosoftのWindowsコードページ932 | NEC・IBM拡張文字などを含む |
| Windows-31J | CP932系を指す名称として使用 | 製品によってラベルが異なる |
| WHATWG shift_jis | Webブラウザ向けに相互運用性を定義 | Windows系の実用挙動を反映 |
なぜ同じ名前で扱われるのか
Windows上のテキストエディタやCSV処理では、メニューに「Shift_JIS」と表示しながら実際にはCP932相当の変換を行う場合があります。日常的な日本語の多くでは違いが現れないため、同義のように使われてきました。差が出るのは拡張文字、記号、Unicodeとの対応が複数ある文字などです。
問題になりやすい文字
- 髙、﨑などの拡張・異体字
- 丸数字、ローマ数字、単位記号
- 波ダッシュと全角チルダ
- マイナス記号と全角ハイフン
- 外字・私用領域の文字
- 絵文字などUnicodeにのみ存在する文字
受け渡し前に確認すること
- 相手が想定する具体的な文字コード名を確認する
- Windows-31J/CP932でよいかを確認する
- 外字や拡張文字の許可範囲を確認する
- 実際の取り込み環境でテストする
- 可能ならUTF-8へ移行する
本ツールの「Windows-31J/CP932」判定は、ブラウザのWHATWG Encoding準拠shift_jisデコーダーから作成した対応表を使います。Webブラウザで再現可能な実用判定ですが、厳密なJIS文字集合や各社独自の変換表を保証するものではありません。
仕様書には「Shift_JIS」だけを書かない
新しく仕様を決められる場合は、文字コード名、BOM、改行コード、許可文字、代替文字、エラー時の扱いまで明記すると事故を減らせます。
参考資料
最終確認日:2026年7月23日