-文字禍- 文字コード

SITE

 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)の場合
 &#x5676;とすれば ・・・ 10進法表記の&#22134;も同じ
 Unicodeで読み取ってくれる。

 一部の文字・記号はOS、アプリケーションによって表示が区々(まちまち)。

 UnicodeからShift-JISへの変換は
 Unicode対応のエディタ、ブラウザで表示してから
 従来のエディタにコピー&ペースト。

 その逆も同様。

 もうUnicodeが標準。

4バイト文字

 近年は2バイト文字(16進数で0000~FFFF、10進数で0~65535)に含まれない文字(JIS第3水準、JIS第4水準の漢字の一部など)が、普通に表示されるようになってきた。

 めったに使われないけれども例えば
 山形県鶴岡市 櫛引 たらのき代
という所は、ずっと『木荒』代と表記していたので
 𣗄
と表示された時は、喉につっかえていた小骨がとれたような感じがした。
 Unicode:235C4(U+235C4)
 &#x235C4;。10進法表記だと&#144836;。

 サロゲートペアと呼ばれている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)

スポンサーリンク
ふシゼン
タイトルとURLをコピーしました