【しふとじす】

シフトJISコード とは?

💡 Windows時代を支えた日本語文字コードの定番
📌 このページのポイント
シフトJISのバイト構造 0x00〜0x7F ASCII(1バイト) 0x81〜0x9F 日本語1バイト目 0xA1〜0xDF 半角カナ(1バイト) 0xE0〜0xFC 日本語1バイト目 0xFF JISコードとの違い エスケープシーケンス不要! 先頭バイトの値だけで判別可能 有名な「5C問題」 2バイト目に 0x5C(\)が出現! パス区切りと誤認 → バグの原因 5C問題に該当する漢字の例: ※ 現在はUTF-8への移行が推奨されている
シフトJISのバイト構造と5C問題
ひよこ ひよこ

シフトJISとJISコードって何が違うの?

ペンギン先生 ペンギン先生

JISコードはエスケープシーケンスで日本語とASCIIを切り替えるんだけど、シフトJISはバイトの値だけで日本語かどうか判別できるんだ。切り替え信号が不要だから、プログラムで扱いやすかったんだね

ひよこ ひよこ

なんでWindowsで使われるようになったの?

ペンギン先生 ペンギン先生

Microsoftが日本語版Windowsの標準文字コードとして採用したからだよ。半角カナも使えるし、当時のMS-DOSとの互換性もあったから、日本のPC環境にはぴったりだったんだ

ひよこ ひよこ

今もシフトJISを見かけることあるの?

ペンギン先生 ペンギン先生

あるある。特にExcelCSVファイルを開くときはシフトJIS前提だったりするし、古いWebサイトやゲームのデータファイルにも残っているよ。UTF-8CSVExcelで開いたら文字化けした、っていう経験がある人は多いんじゃないかな

ひよこ ひよこ

シフトJISって何か問題があるの?

ペンギン先生 ペンギン先生

有名なのが「5C問題」だね。シフトJISの2バイト目にバックスラッシュ(0x5C)と同じ値が来る文字があって、プログラムがパス区切りと誤認してバグになることがあるんだ。「表」「予」「能」などの漢字がこの罠にハマるよ。だからこそUTF-8への移行が推奨されているんだね

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「シフトJIS」って出てきたら「Windows時代の日本語文字コード」と思えればだいたいOK!
📖 おまけ:英語の意味
「Shift JIS (Shift Japanese Industrial Standards)」 = シフトされたJIS文字コード
💬 JISコードのコード領域を「ずらす(shift)」ことで半角カナと両立させたのが名前の由来だよ
← 用語集にもどる