MySQL 5.5でデータベース作成の際、文字コード「utf8mb4」を見かけたついでに4バイト文字について。
文字コード
※ 以前まとめたページから移した(2025年)
半角の英文字など1バイト文字は、ASCIIコード。
万国
全角のかな(カナ)、漢字など2バイト文字は、国(地域)毎に独自の文字コード。
日本はJISコード
Windows、Mac OSでは従来シフトJISコード Shift-JIS
UNIXでは従来EUC-JP
インターネットは、だんだん多言語(マルチリンガル)対応のブラウザが標準化。
文字コード:ユニコード UnicodeのUTF-8
Linuxも
アプリケーションも
データベース、CMSなど
WindowsもWindows 10からメモ帳の文字コード標準がUTF-8。
文字コードが合わないと
文字化け
↓
譁・ュ怜喧縺・
する。
Shift-JISで作ったHTML文書を(Unicode標準になった)ブラウザで表示すると文字化け(することがある)。
→ HTMLファイルのヘッダー <head> </head>の中で
<meta charset=”shift_jis”>
と指定すれば
ブラウザがShift-JISで読み取ってくれる
or
→ Unicodeで作成 ・・・ Unicode対応のエディタで
<meta charset=”utf-8″>
UnicodeならばShift-JISに登録されていない文字も多くの場合見つかる。
従来どおりShift-JISで文書を作る場合でも
例えば
噶 Unicode:5676(U+5676)の場合
噶とすれば ・・・ 10進法表記の噶も同じ
Unicodeで読み取ってくれる。
一部の文字・記号はOS、アプリケーションによって表示が区々(まちまち)。
UnicodeからShift-JISへの変換は
Unicode対応のエディタ、ブラウザで表示してから
従来のエディタにコピー&ペースト。
その逆も同様。
もうUnicodeが標準。
4バイト文字
近年は2バイト文字(16進数で0000~FFFF、10進数で0~65535)に含まれない文字(JIS第3水準、JIS第4水準の漢字の一部など)が、普通に表示されるようになってきた。
めったに使われないけれども例えば
山形県鶴岡市 櫛引 たらのき代
という所は、ずっと『木荒』代と表記していたので
𣗄代
と表示された時は、喉につっかえていた小骨がとれたような感じがした。
Unicode:235C4(U+235C4)
𣗄。10進法表記だと𣗄。
サロゲートペアと呼ばれている4バイト文字は、
サロゲート Surrogate:代用の ; ペア Pair:対
Unicodeの
上位サロゲート領域(2バイト) U+D800~U+DBFF ・・・ 55296~56319の1024
と
下位サロゲート領域(2バイト) U+DC00~U+DFFF ・・・ 56320~57343の1024
を組み合わせて表示したもので、2バイト文字の65536を大きく上回る100万以上(1024 × 1024 = 1048576)の文字を登録できる。
4バイトだけどUnicode(16進数表示)は8桁ではなく5桁から。
U+10000~U+10FFFF(追加多言語面以降)へ割り当てて表記。
4バイト文字で表示が可能になった𣗄代以外の地名は、
福島県いわき市 常盤関船町 𣖔木作(ほうのきざく)
Unicode:23594(U+23594)
長野県長野市 𣘹原山(たらら山)
Unicode:23639(U+23639)
和歌山県串本町 野𣷓(野凪)
Unicode:23DD3(U+23DD3)
一方、小骨がつっかえたままの地名は今のところ
神奈川県鎌倉市 勝上『山献』(しょうじょうけん)
勝上献とも表記されるが、厳密には『山かんむり+献』
→ glyphwiki.org/wiki/pyrite_x046-13-01
兵庫県丹波篠山市 大たわ(大『山定』)、小倉たわ(小倉『山定』)
→ glyphwiki.org/wiki/pyrite_x046-08-01
地名以外では、𩸽(ホッケ)も 4バイト文字
Unicode: 29E3D(U+29E3D)