UnicodeとUTF-16とUTF-8の違い(秀丸で文字コードを確認)

UnicodeとUTF-16とUTF-8の違いについてです。
秀丸で文字コードを確認します。

確認環境
・Windows10
・秀丸エディタ Version 8.81

目次

UnicodeとUTF-16とUTF-8の違い

Unicodeは、世界中の文字を集めたものでそれぞれの文字に番号が振られています。

UTF-16とUTF-8は符号化方式です。パソコンで使用するためにUnicodeを変換した番号が振られています。

UTF-16とUTF-8の振られた番号は別々ですが、同じ文字集合のUnicodeから変換されているので持っている文字の種類は同じです。

文字集合と符号化方式は、正式には符号化文字集合と文字符号化方式といいます。
https://ja.wikipedia.org/wiki/%E6%96%87%E5%AD%97%E9%9B%86%E5%90%88

アルファベットの文字「A」を確認する

秀丸でアルファベットの文字Aを確認します。

Unicodeは、U+0041となっています。頭にU+がつきその後に文字コードがあります。これを、Unicodeコードポイントといいます。この文字「A」で2バイト使用しています。

その下のUnicode(UTF-16)は、UTF-16です。数値の部分はUnicodeと同じ「0041」です。この文字「A」で2バイト使用しています。

その下のUnicode(UTF-8)は、UTF-8です。数値は「41」です。1バイト使用しています。UTF-8でのASCII文字は1バイトです。

数値文字参照

HTML(10進数)とHTML(16進数)にある「&#65」と「&#x41」は、数値文字参照で使用できます。例えば、HTML文書内で「A」または「A」と記述すると、画面表示時は、「A」と表示されます。

ひらがなの文字「あ」を確認する

秀丸でひらがなの文字「あ」を確認します。

Unicodeは、U+3042となっています。この文字「あ」で2バイト使用しています。アルファベット「A」のUnicodeと同じバイト数です。

UTF-16の数値の部分はUnicodeと同じ「3042」です。同じく2バイト使用しています。

UTF-8は、「E3 81 82」です。3バイト使用しています。

サロゲートペアの文字「𠮷」を確認する

サロゲートペアの文字「𠮷」(つちよし)を確認します。
サロゲートペアとは、当初の想定より文字が増えたため、後から追加した文字です。

Unicodeは、U+00020BB7となっています。数値の部分が8桁になっています。この文字「𠮷」で4バイト使用しています。

UTF-16は、「0xD842」と「0xDFB7」の2つになっています。2バイト*2で4バイト使用しています。上位サロゲートと下位サロゲートといいます。

UTF-8は、「F0 A0 AE B7」です。4バイト使用しています。
ちなみにデータベース「MySQL」のUTF-8 mb4は、4バイトに対応しているUTF-8のことです。

Shift-JISでは、文字コードが表示されていません。

円記号のコピペは要注意

注意が必要な円記号についてです。

上記の円記号は、見た目は同じですが文字コードが異なっています。
①のShift-JISは「0x5c」ですが、②のShift-JISにはありません。Unicode、UTF-16、UTF-8の文字コードも異なるので全くの別物です。

Windowsのフォルダのパスは円記号で区切られていますが、①が使用されています。
パス(path)の設定で、②の円記号が入り込んでいてパス設定にハマったことがあります。
(パスをテキストに並べて確認しても見た目は同じなので間違いに気づきません)

Webの円記号をコピペするとたまにあるので注意が必要です。

秀丸は絵文字にも対応している

絵文字は後から追加されたので4バイトの文字です。
秀丸は、4バイトのUTF-16/UTF-8にも対応しているので絵文字も表示できます。

以下は、テキスト入力欄に、寿司の絵文字がある図です。

文字コードを確認すると、UTF-16/UTF-8には、4バイトの文字コードが振られていることがわかります。Shift-JISのコードはないのでファイルをShift-JISで開くと文字化けします。

 

※秀丸はテキストエディタですが文字コードの確認もできます。
文字コードの表示方法は以下を参照下さい。
秀丸 カーソルで文字コードを表示する方法

△上に戻る