文字コード変換

文字とUnicodeコードポイント・UTF-8バイト列・UTF-16・HTML実体参照・URLエンコードを 相互変換します。絵文字やサロゲートペアにも対応。データは送信されません。

文字Unicode10進UTF-8UTF-16実体参照
U+304212,354E3 81 823042あ
AU+004165410041A
🎈U+1F388127,880F0 9F 8E 88D83C DF88🎈

3 文字(コードポイント単位)。絵文字はサロゲートペアのため UTF-16 が2つになります。

使い方

「文字 → コード」では入力した文字を1つずつ分解して、各種の表現を並べます。 「コード → 文字」では U+3042 のようなコードから文字に戻せます。複数まとめて指定することもできます。

文字コードのしくみ

Unicodeでは、世界中の文字それぞれにコードポイントという番号が振られています。 「あ」なら U+3042 です。この番号を実際のデータとして保存・送信するときの方法が符号化方式で、 もっとも広く使われているのがUTF-8です。

文字コードポイント10進UTF-8バイト数UTF-16
AU+0041654110041
U+304212,354E3 81 8233042
U+6F2228,450E6 BC A236F22
U+24609,312E2 91 A032460
🎈U+1F388127,880F0 9F 8E 884D83C DF88

UTF-8は文字によってバイト数が変わるのが特徴です。半角英数字は1バイトで済むため、 英語中心のデータでは容量が小さくなります。日本語は多くが3バイトです。

サロゲートペアという落とし穴

UTF-16では1つの単位で U+FFFF までしか表せません。それを超える文字(多くの絵文字など)は、 2つの単位に分けて表します。これがサロゲートペアです。

そのため、プログラムによっては絵文字1つが「長さ2」と数えられます。 風船の絵文字はコードポイントが U+1F388 の1文字ですが、UTF-16では D83C と DF88 の2つになります。 文字数を数えるときに食い違いが起きるのは、これが原因です。

表現の使い分け

表現書き方(「あ」の場合)使う場面
コードポイントU+3042仕様書やドキュメントで文字を特定する
UTF-8E3 81 82ファイルや通信の中身を調べる
HTML実体参照あHTMLに直接書けない文字を表す
URLエンコード%E3%81%82URLに日本語を含める
JavaScriptソースコードに文字を埋め込む

使うときの注意

  • 対応しているのはUTF-8とUTF-16です。Shift_JISやEUC-JPには対応していません。
  • 結合文字(濁点を別に持つ文字など)は、コードポイントごとに1行ずつ表示されます。
  • サロゲートの片方だけ(D800〜DFFF)は文字として成立しないため、変換できません。
  • 表示は先頭200文字までです。長い文章の全文解析には向きません。

よくある質問

コードポイントとUTF-8は何が違いますか?

コードポイントは「その文字に振られた番号」、UTF-8は「その番号をバイト列で表す方法」です。ひらがなの「あ」はコードポイントがU+3042(10進で12354)で、UTF-8では E3 81 82 の3バイトになります。

日本語は何バイトですか?

UTF-8では、ひらがな・カタカナ・漢字の多くが3バイトです。半角英数字は1バイト、一部の絵文字や補助漢字は4バイトになります。データベースの桁数制限がバイト単位の場合は注意が必要です。

サロゲートペアとは何ですか?

UTF-16で、U+FFFFを超える文字を2つの単位に分けて表す仕組みです。絵文字の多くが該当し、プログラムによっては「1文字なのに長さが2」と数えられます。このツールではUTF-16の欄に2つの値が並びます。

Shift_JISやEUC-JPには対応していますか?

対応していません。ブラウザが標準で扱えるのがUTF-8・UTF-16のため、これらに絞っています。Shift_JISのコードが必要な場合は専用のツールをお使いください。

「あ」のような書き方は何ですか?

HTMLの数値文字参照です。文字コードで直接書けない環境でも文字を表せます。あ と書くと「あ」が表示されます。16進で書く場合は あ です。

入力した文字は送信されますか?

いいえ。変換はすべてブラウザ内で行われ、入力内容が外部へ送信・保存されることはありません。

関連ツール

文字数やバイト数の集計は 文字数カウント、URLの変換は URLエンコード、16進数そのものの変換は 基数変換 をどうぞ。 データ量の単位は データ量の換算、Base64は Base64エンコード が便利です。