違いは「番号の保存方法」

UTF-8はUnicodeのコードポイントを1〜4バイトで表す方式です。ASCII文字は1バイト、日本語の多くは3バイトになります。Shift_JISは日本語向けに広く使われてきた別の符号化方式で、同じ「あ」でも異なるバイト列になります。

UTF-8あ → E3 81 82
Shift_JISあ → 82 A0

文字化けする理由

UTF-8で保存したデータをShift_JISとして読むと、バイトの区切りと対応する文字を誤って解釈します。ファイルを開くアプリで「文字コード」や「エンコーディング」を確認しましょう。

迷ったとき

新しいWebサイトやデータ交換では、特別な指定がなければUTF-8を選ぶのが一般的です。既存の業務システムや古いCSVではShift_JIS系が指定されることがあります。

実際の文字を調べてみる

図鑑に戻り、気になる文字を貼り付けるとコードポイントとバイト列を確認できます。

文字コード図鑑を使う →