30日OS自作本28日目2日本語対応
OS自作本28日日本語対応の内容です。
JIS企画でも全角文字コード点、区、面
- 1つの点が、全角1文字に対応
- 1つの区には、94の点がある
- 1つの面には、94の区がある
面 - 区 - 点
という感じで 1:94:94の関係で構成されているようです。
感じには第一水準漢字~第四水準漢字があり、1~3水準まで1面に含まれているようです,2面には第四水準漢字がある。
https://ja.wikipedia.org/wiki/JIS漢字コード
あの文字コード0x2422
これを面-区-点の表記に治すには
- 上位1Byte -
0x20
= 区 - 下位1Byte -
0x20
= 点
で1面04区02点となります.
hariboteOSでは第一水準の漢字のみを使えるようにします。
sjis,unicode,eucなどと比べると・・・
$ echo あ|nkf -w|hexdump -C 00000000 e3 81 82 0a |....| 00000004
$ echo あ|nkf -s|hexdump -C 00000000 82 a0 0a |...| 00000003
$ echo あ|nkf -e|hexdump -C 00000000 a4 a2 0a |...| 00000003
一応nkf -jでjisも表示できるのですが、0x2422の周りに変なものがたくさん出てきました。何これ?
$echo あ|nkf -j|hexdump -C 00000000 1b 24 42 24 22 1b 28 42 0a |.$B$".(B.| 00000009
各コードそれぞれで文字コード → 面区点に変換する方法があるので(このルールが微妙に違うだけ) hariboteOSではeucとsjisでの文字表示に対応させています(utfはありませんね。読者課題ってことでしょうか)
とりあえずeuc,sjis,デフォルトの組み込み半角英数字(16*8)のサイズ で切り替えるようなコマンドも作成しました。
langmode <数字>
感想
文字コード,最近のマシンではutf8だけど、昔のlinuxはeuc,windowsはsjis、くらいしかわかってないので、一度ちゃんと学んだほうがいいと思った。
- utf8とutf16の違いなど
- sjis,jisの違いなど
プログラマのための文字コード技術入門 (WEB+DB PRESS plus) (WEB+DB PRESS plusシリーズ)
- 作者: 矢野啓介
- 出版社/メーカー: 技術評論社
- 発売日: 2010/02/18
- メディア: 単行本(ソフトカバー)
- 購入: 34人 クリック: 578回
- この商品を含むブログ (129件) を見る