UNICODE & CHARACTER ENCODING

Unicode・文字コード変換|U+・UTF-8・UTF-16を相互変換

文字列をUnicodeコードポイントやUTF byte列へ変換し、U+表記・JavaScript escape・UTF-8/UTF-16 byte列から文字へ戻せます。

入力した文字・Unicodeコード・byte列はブラウザ内だけで処理され、外部へ送信・保存されません。

変換する文字・テキスト

入力を変更せず、約200ms後にコードポイント単位で解析します。

UTF-16 code unit数
0
Unicode code point数
0
UTF-8 byte数
0

変換結果

各欄を個別にコピーできます。BOMはbyte出力だけへ反映します。

Unicodeコードポイント

16進コードポイント

10進コードポイント

JavaScript Unicode escape

\u{...}はコードポイント、次の欄はUTF-16 code unit表記です。

UTF-16 JavaScript escape

UTF-8 bytes

UTF-16 code units(raw)

UTF-16LE bytes

UTF-16BE bytes

コードポイント詳細

画面上で1文字に見えても複数のUnicodeコードポイントで構成される場合があります。

#表示U+10進UTF-8UTF-16

Unicodeとは

Unicodeは世界中の文字へ一意なコードポイントを割り当てる標準です。UTF-8・UTF-16・UTF-32は、そのコードポイントをbyteやcode unitとして表現するencoding formです。このツールはブラウザ標準APIが扱えるUnicodeを対象とし、Unicodeの版を固定しません。

Unicodeコードポイントとは

コードポイントは文字へ割り当てられた0~10FFFFの番号です。例えば「あ」はU+3042です。D800~DFFFはUTF-16のサロゲート用範囲で、単独のUnicode scalar valueとしては使用できません。

U+XXXXとは

U+の後へ大文字の16進数を最低4桁で書く標準的な表記です。AはU+0041、😀はU+1F600です。HTML数値文字参照とは別物で、HTML用途にはHTMLエスケープ・アンエスケープをご利用ください。

UTF-8とは

UTF-8はコードポイントに応じて1~4byteを利用する可変長encodingです。「あ」はE3 81 82です。URL percent encodingの%E3%81%82とは用途が異なり、URL用途にはURLエンコード・デコードをご利用ください。

UTF-16とは

UTF-16は16bit code unitを使用します。「あ」は3042、BMP外の😀はhigh・low surrogateのD83D DE00です。😀はUnicode code pointでは1個、UTF-16 code unitでは2個です。

UTF-8とUTF-16の違い

UTF-8は1~4byte、UTF-16は1個または2個の16bit code unitでコードポイントを表します。UTF-16LEとUTF-16BEは各code unitのbyte順が異なります。BOMはbyte順やencodingを示す先頭markerであり、通常の本文コードポイント一覧へ追加するものではありません。

JavaScript Unicode escapeとは

BMP内は\u3042、BMP外のコードポイントは\u{1F600}と書けます。\uD83D\uDE00は同じ😀をUTF-16 surrogate pairの2 code unitsで表したものです。このツールは専用parserで解析し、evalは使用しません。

絵文字とサロゲートペア

絵文字にはBMP外のコードポイント、variation selector、ZWJ、複数コードポイントsequenceがあります。家族emojiなどは見た目が1文字でも複数コードポイントです。このツールはZWJ sequenceを一つのコードポイントへまとめません。

見た目が同じ文字でもコードが異なる場合

precomposedの「é」と、e + U+0301のcombining sequenceは見た目がほぼ同じでもコードポイント列が異なります。このツールはtrim、空白圧縮、全角半角変換、Unicode normalizationを行わず、入力どおり解析します。

よくある質問

Unicodeコードポイントを調べられますか?

はい。文字列全体をコードポイント単位で解析し、U+・16進・10進で表示します。

U+3042を文字に変換できますか?

はい。「あ」へ変換できます。

絵文字のUnicodeを確認できますか?

はい。BMP外の絵文字もcodePointAtとコードポイント走査で確認できます。

UTF-8のbyte列を確認できますか?

はい。TextEncoderで入力全文をUTF-8へ変換します。

UTF-8 byte列から文字へ戻せますか?

はい。fatal指定のTextDecoderで厳密に復元します。

UTF-16にも対応していますか?

raw code units、LE/BE byte表示、LE/BE byte decodeへ対応します。

Shift_JISに変換できますか?

初版では対応していません。Unicode・UTF-8・UTF-16へ機能を限定しています。

\u3042を文字にできますか?

はい。JavaScript Unicode escape形式で「あ」へ変換できます。

\u{1F600}にも対応していますか?

はい。1~6桁を厳密に検証し、😀へ変換できます。

\uD83D\uDE00とは何ですか?

😀をUTF-16のhigh・low surrogate pairで表したものです。

なぜ絵文字はUTF-16で2つになりますか?

BMP外コードポイントを2個の16bit code unitsで表すためです。

見た目が同じ文字なのにUnicodeが違うことはありますか?

combining markやnormalization形の違いによって異なる場合があります。

入力内容は保存されますか?

Cookie・Storage・URL・サーバーへ保存せず、外部送信もしません。