本文へスキップ
Case Converter Online
ja

UTF-8 エンコード・デコード

どんなテキストでも、UTF-8 でどのバイトになるのかを正確に確認できます。バイトを文字に戻したり、café のような文字化けを修正したりすることも可能です。1文字ごとにコードポイントも一覧表示します。

双方向に変換できます。右側に貼り付けるデータに合ったバイト形式を選んでください。

1文字ずつの表示

文字コードポイントUTF-8 バイトバイト数

UTF-8 とは

コンピューター上のテキストは、すべて数値として保存されています。Unicode は、それぞれの文字にコードポイントと呼ばれる番号を割り当てた一覧表です。アルファベットの A は U+0041、é は U+00E9、ユーロ記号 € は U+20AC、ひらがなの あ は U+3042 です。UTF-8 は、こうしたコードポイントをバイトに変換するためのルールです。

UTF-8 は、Web、JSON、ほとんどのプログラミング言語、最近の OS で標準となっている文字コードです。いちばんの長所は、ASCII だけのテキストが変化しないことです。A は1バイトの 41 のままです。それ以外の文字は2、3、4バイトを使い、それらのバイトはすべて128以上なので、ASCII と取り違えることはありません。

UTF-8 ツールの使い方

エンコードする。 「テキスト」欄に入力します。UTF-8 のバイトが「UTF-8 バイト」欄に表示されます。「コピー」を押すと取り出せます。

デコードする。 「UTF-8 バイト」欄にバイトを貼り付けます。左側に文字が表示されます。「バイト形式」が貼り付けるデータの形式と合っているか確認してください。

バイト形式では、バイトの書き表し方を6種類から選べます。

  • 16進数バイト:C3 A9:読んだりデバッグしたりするとき向け
  • エスケープ:\xC3\xA9:コードの文字列リテラル向け
  • パーセント:%C3%A9:Webアドレスで使われる形式
  • 10進数:195 169:バイト配列向け
  • 2進数:11000011 10101001:ビットの並び方を学ぶとき向け
  • 文字化けテキスト:é(文字化けを修正):間違った文字コードで読まれたテキストの修復向け

1文字ずつの表示。 ツールの下の表には、すべての文字がコードポイント、UTF-8 のバイト、バイト数とともに一覧表示されます。集計欄には、全体の文字数とバイト数が表示されます。スペース、タブ、改行も名前で表示されるので、目で確認できます。たとえば あ は U+3042、E3 81 82、3バイトと表示されます。

UTF-8 の仕組み

使うバイト数は、コードポイントの大きさで決まります。

コードポイント バイト数 ビットパターン
U+0000 から U+007F 1 0xxxxxxx
U+0080 から U+07FF 2 110xxxxx 10xxxxxx
U+0800 から U+FFFF 3 1110xxxx 10xxxxxx 10xxxxxx
U+10000 から U+10FFFF 4 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx

最初のバイトが、後ろに何バイト続くかを示します。続くバイトはすべて 10 で始まります。この仕組みにより UTF-8 は自己同期性を持っています。データの途中からでも、プログラムは必ず次の文字の始まりを見つけられます。ひらがな、カタカナ、よく使う漢字はすべて U+0800 から U+FFFF の範囲にあるので、3バイトになります。

変換例

文字 コードポイント UTF-8 16進数 10進数
A U+0041 41 65
é U+00E9 C3 A9 195 169
ñ U+00F1 C3 B1 195 177
ß U+00DF C3 9F 195 159
€ U+20AC E2 82 AC 226 130 172
日 U+65E5 E6 97 A5 230 151 165
親指を立てた絵文字 U+1F44D F0 9F 91 8D 240 159 145 141

文字化けの修正

ここで扱う文字化けは、UTF-8 のバイトが Windows-1252 や Latin-1 として読まれたときに起きるものです。1バイトがそれぞれ別の文字になってしまうため、2バイトの文字が2つの奇妙な記号に化けます。

正しいテキスト 化けた表示
café café
naïve naïve
It’s It’s
€ €

「文字化けテキスト」形式は、これを元に戻します。化けた文字をそれぞれ元のバイトに戻し、そのバイトを UTF-8 として読み直します。日本語でも同じ種類の文字化けなら直せます。たとえば テスト は テスト に戻ります。この間違いからは生じ得ない文字が含まれている場合は、推測で変換せずにその旨を表示します。

なお、日本でよく見かける Shift_JIS と UTF-8 の取り違えによる文字化け(「譌・譛ャ隱」のような漢字の羅列)は、別の種類の間違いなので、この機能では修正できません。

ヒントと制限

  • ファイルは UTF-8 で保存しましょう。 文字化けの多くは、ある文字コードで保存したファイルを別の文字コードで開くことから始まります。エディタで保存するときは UTF-8 を選んでください。
  • 文字コードを宣言しましょう。 HTML では、ページの先頭に <meta charset="utf-8"> を書きます。
  • Excel と CSV ファイル。 古いバージョンの Excel は CSV の文字コードを推測して開きます。「CSV UTF-8」形式で保存すると、アクセント記号や日本語が崩れるのを防げます。
  • 修正は1回分だけです。 2回文字化けしたテキストは、修正を2回かける必要があります。
  • 表に表示されるのは500文字までです。ページの動作を軽くするためです。バイト数は常にテキスト全体を対象に数えます。

そのほかの方法

Python。 'café'.encode('utf-8') は b'caf\xc3\xa9' を返します。文字化けを直すには、'café'.encode('cp1252').decode('utf-8') で café が返ります。

JavaScript。 new TextEncoder().encode('é') はバイト 195 と 169 を返します。new TextDecoder().decode(bytes) で文字に戻せます。

コマンドライン。 UTF-8 のターミナルで echo -n é | xxd を実行すると、バイト c3a9 が表示されます。ファイル全体を変換するには iconv -f WINDOWS-1252 -t UTF-8 を使います。

関連ツール

16進数のバイトをそのままデコードするには、16進数テキスト変換を使ってください。リンク内のパーセントエンコードされたバイトは、URLデコードで扱えます。ビットまで詳しく見たい場合は、2進数翻訳ツールを試してください。

UTF-8 エンコーダーのよくある質問

UTF-8 では1文字が何バイトになりますか?

1バイトから4バイトです。英字、数字、基本的な記号は1バイトです。アクセント付きのラテン文字の多く、ギリシャ文字、キリル文字、ヘブライ文字、アラビア文字は2バイトです。ひらがな、カタカナ、漢字など日本語・中国語・韓国語の文字のほとんどと、ユーロ記号などの記号は3バイトです。絵文字は通常4バイトです。

café や It’s のような文字化けを直すには?

「バイト形式」を「文字化けテキスト:é(文字化けを修正)」に設定し、崩れたテキストを右側の欄に貼り付けてください。修正されたテキストが左側に表示されます。café は café に、It’s は It’s になります。

Unicode と UTF-8 の違いは何ですか?

Unicode はすべての文字にコードポイントと呼ばれる番号を割り当てたものです。たとえばユーロ記号は U+20AC です。UTF-8 は、その番号をバイトとして保存する方式のひとつです。ユーロ記号は UTF-8 では E2 82 AC として保存されます。

文字数よりバイト数の方が多いのはなぜですか?

基本的な ASCII 以外の文字は、1文字に複数のバイトが必要だからです。Café €5 に親指を立てた絵文字を加えると9文字ですが、15バイトになります。日本語は1文字3バイトが基本なので、10文字の日本語は30バイトになります。文字数とバイト数は、文字一覧表の上の集計欄に両方表示されます。

その他のコード・データツール

すべてのツールを見る