TegaruTools
テキストガイド

文字コードと文字化けの基礎 | UTF-8・Shift_JISの違いを30分で理解

「メモ帳で開いたら文字化けした」「フォームに貼り付けたら表示が崩れた」といったトラブルの背景にある文字コードの仕組みを、できるだけシンプルに解説します。

公開: 2026年6月12日読了 約8TegaruTools

メモ帳で開いたら漢字が 譁?ュ怜喧縺 のように崩れた。CSVをExcelで開いたら、表が文字化けで読めない。フォームに貼り付けたら別の文字に変わった。こうしたトラブルの原因は、ほとんどの場合文字コードにあります。

文字コードは、エンジニア以外には縁遠い言葉に聞こえるかもしれません。でも、仕組みを少しだけ知っておくと、トラブルを避けたり、直し方の見当をつけたりできます。ここでは、UTF-8とShift_JISの違いを中心に、最低限おさえておきたいことを整理します。

文字コードとは:文字を「数字」で表すルール

コンピューターの中では、すべての情報が0と1で扱われます。文字も例外ではなく、「あ」「a」「漢」のような1文字ずつに、固有の番号(コードポイント)が割り当てられています。

ところが、この「文字 ↔ 番号」の対応ルールには、いくつかの流派があります。たとえば「あ」を表す番号は、ルールによって次のように違います。

  • Shift_JIS:「あ」=0x82A0(2バイト)
  • EUC-JP:「あ」=0xA4A2(2バイト)
  • UTF-8:「あ」=0xE38182(3バイト)

書き手と読み手が違うルールを使うと、同じ番号を別の文字として読んでしまい、文字化けが起きます。

主要な文字コードと特徴

ASCII:すべての原点(英数字専用)

1963年に制定された、もっとも古い文字コード規格です。半角の英数字と記号、あわせて128文字だけを、1バイト(7bit)で表します。日本語は1文字も含まれません。あとから生まれた文字コードは、ほぼすべてASCIIと互換性を保つように作られています。

Shift_JIS:昔のWindowsとガラケーの標準

日本語版Windowsで長く標準だった文字コードです。ASCIIの半角文字(1バイト)と、ひらがな・カタカナ・漢字(2バイト)を混ぜて扱えるのが特徴です。Windowsのメモ帳が「ANSI」と呼んでいたのは、実質的にこのShift_JISのことでした。

今でも、古い基幹システム、CSV出力、メール、ガラケー時代のWebサイトなどで使われ続けています。

EUC-JP:Unix系の標準だった日本語コード

LinuxやUnixでよく使われていた日本語の文字コードです。Shift_JISと並んで、日本のWebサイトでも一時期は広く使われましたが、今はUTF-8に置き換わっています。

UTF-8:いまの事実上の標準

Unicodeを可変長(1〜4バイト)で表す方式です。半角英数字は1バイト、日本語は3バイト、絵文字は4バイト。ASCIIと完全に互換で、世界中のあらゆる文字を1つの規格で扱えます。そのため、いまのWeb・モバイル・API通信は、ほぼすべてUTF-8です。

TegaruToolsの各ツールも、内部処理はすべてUTF-8を前提にしています。

なぜ文字化けが起きるのか

文字化けの原因は、つきつめれば「書き手と読み手が違うルールを使っている」だけです。よくある4つのパターンを見ていきましょう。

パターン1:UTF-8をShift_JISとして開いた

たとえばUTF-8で書かれた「あいう」を、Shift_JISだと思って開くと、「縺ゅ>縺・」のような連続した謎の文字列になります。日本語が で始まる文字に化けていたら、ほぼこのパターンです。

パターン2:Shift_JISをUTF-8として開いた

Shift_JISの日本語ファイルをUTF-8として開くと、「��������」のような置換文字や、中途半端な記号の連続が現れます。Webブラウザでよく見る「◇に?」の文字化けマークも、この仲間です。

パターン3:CSVをExcelで開いたら化ける(BOM問題)

UTF-8で書かれたCSVをExcelで開くと、Shift_JISと誤って判断され、日本語が化けてしまう。これは有名なトラブルです。Excelが「UTF-8で保存された目印(BOM)」を期待するために起きます。

対策は、CSVを作るときにUTF-8 with BOMで保存することです。Googleスプレッドシートやプログラムで作る場合は、はっきりBOM付きで書き出します。

パターン4:フォームに貼り付けたら別の文字に変わる

コピー元(PDFやWebページ)と貼り付け先(フォームやエディタ)で文字コードの扱いが違うと、特定の記号が別の文字に置き換わることがあります。「全角ハイフン」「波ダッシュ」「マイナス記号」のように、見た目が似ていて別の文字コードを持つ記号が、原因になりがちです。

文字化けを未然に防ぐコツ

  • テキストファイルはUTF-8で保存する:Windowsのメモ帳でも、保存時に「UTF-8」を選べます。これを習慣にしましょう。
  • HTMLの文字コード宣言を入れる<meta charset="UTF-8"> を書いておきます。
  • CSVはUTF-8 with BOMで書き出す:Excelで開くことが想定されるなら必須です。
  • 外部システムと連携するときは仕様を確認:基幹システムや古い銀行APIは、Shift_JISのまま運用されていることがあります。事前に確かめましょう。
  • 絵文字や旧字体に頼りすぎない:環境によっては表示できず、別の文字に化けることがあります。大事な書類は、標準的な文字に絞るのが安全です。

もし文字化けしてしまったら:復旧の手順

すでに化けてしまったファイルでも、元の文字コードが分かれば直せることがあります。

  1. 元の文字コードを推測する:「縺」で始まればUTF-8をShift_JISと誤認識したパターン、「�」が並ぶならその逆です。
  2. テキストエディタで開き直す:VS Codeやサクラエディタなど、多くのエディタは開くときに文字コードを指定できます。
  3. 変換ツールで再エンコードする:オンラインの文字コード判定・変換サービスや、iconvコマンドなどで変換できます。
  4. 送信元に確認する:それでも直らなければ、送信元に元データを送り直してもらいます。

関連ツールで日々の作業をらくにする

TegaruToolsには、テキストや文字コードまわりの作業を助けるツールがあります。

まとめ:「迷ったらUTF-8」で大半は防げる

文字化けの根本原因は、「複数のルールが存在すること」です。いまのWeb・モバイル・APIは、ほぼすべてUTF-8を採用しています。だから、自分が扱う側でつねにUTF-8で保存・送信することを習慣にすれば、文字化けに出会う回数はぐっと減ります。

古いシステムと連携するときだけ、Shift_JISの存在を思い出せば十分。そういう時代になっています。

この記事で紹介したツール

関連するガイド記事