昨年までに世界の国々の地図をひととおり描画し終えた。
その間、国旗がユニコード Unicodeの絵文字で表示できることを知った。
久々に文字コードについて。
前回は4バイト文字など。
Unicode
今、文字コードはシフトJIS Shift-JISよりもUnicodeが標準。
Unicodeのページ(home.unicode.org/)
Unicodeの基本多言語面 BMP Basic Multilingual Planeは、
U+0000~U+FFFF
16進数で0000~FFFF、10進数で0~65535
16ビット=2バイトだが、
Unicodeの場合、2バイト文字ではなく、文字によって2バイト~4バイト、最大8バイトまで区々(まちまち)のマルチバイト文字。可変長。
UnicodeにはUTF-8、UTF-16などがある。
U+86C7などの86C7は16進数4桁16ビット(=2バイト)。UTF-16:0x86C7。
WindowsのIMEパッドなどで確認できる。
UTF-8だとE8 9B 87。16進数2桁8ビット×3(=3バイト)。
以下のサイトに一覧表がある。
オレンジ工房 - 備忘帳 - UTF-8の文字コード表(orange-factory.com/dnf/utf-8.html)
・
・
・
UTF-8、UTF-16については
文章を書くのに特段意識する必要ないと思う。
Shift-JISにない字は依然&#使って入力。
例えば、峐 U+5CD0の場合、
峐
もしくは10進数の
峐
で入力
Unicodeの追加面は、
U+10000~U+10FFFF
4バイト文字は16進数5桁から。
上位サロゲート・下位サロゲート U+D800~U+DFFFの組み合わせなので、20ビットや24ビットではなく、32ビット(=4バイト)。
例えば、『糸へん+赤』という漢字(𦀗) U+26017の場合、
UTF-16は0x26017ではなく、
0xD858 0xDC17になっている。
WindowsのIMEパッドなどで確認できる。
なお、16進数5桁20ビットの組み合わせは220で約105万通り。
絵文字(国旗など)
Unicodeの追加面を使っている絵文字はたくさんある。
以下のサイトに一覧表がある。
Let’s EMOJI(lets-emoji.com/)
・
・
・
なお、Font Awesomeというアイコンは、
Unicodeの追加面ではなく
前述の上位サロゲート・下位サロゲート U+D800~U+DFFFの次の
私用領域 Private Use Area U+E000~U+F8FFを使用。
10進数だと57344~63743。6400字分。
Unicode追加面の絵文字の例)
U+1F648
U+1F649
U+1F64A
🙈
🙉
🙊
(表示されているかな?)
国旗は以下のA~Zの2文字連続で表示される。
🇦 U+1F1E6
🇧 U+1F1E7
🇨 U+1F1E8
🇩 U+1F1E9
🇪 U+1F1EA
🇫 U+1F1EB
🇬 U+1F1EC
🇭 U+1F1ED
🇮 U+1F1EE
🇯 U+1F1EF
🇰 U+1F1F0
🇱 U+1F1F1
🇲 U+1F1F2
🇳 U+1F1F3
🇴 U+1F1F4
🇵 U+1F1F5
🇶 U+1F1F6
🇷 U+1F1F7
🇸 U+1F1F8
🇹 U+1F1F9
🇺 U+1F1FA
🇻 U+1F1FB
🇼 U+1F1FC
🇽 U+1F1FD
🇾 U+1F1FE
🇿 U+1F1FF
日本はJPなので、🇯🇵と続けて入力する ⇒ 日の丸。
🇯🇵
次の旗はドコでしょう?
🇲🇶
残念ながらWindowsのEdge、Chromeでは表示されない。□□の表示。
Firefoxでは表示される。
不具合ではなく、デリケートな国・地域もあるという理由らしい。
□□じゃドコも何もないが……
ん?
いつのまにかマルティニーク MQの旗が変わっていた。
ヘビじゃなくなった。Unicodeの絵文字はヘビのまま(変わらないかも)。
U+1F40D
🐍
ヘビ~年
マカレロ
マカレロ
レロレロ~
にょろしく