«前の日記(平成21年09月22日) 最新 次の日記(平成21年09月24日)» 編集

お知らせ


平成21年09月23日 [長年日記]

UTF-8について

 最近、というか結構前からUTF-8ってのはよく聞くようになったが、Unicodeとの違いが分からなかったので色々調べてみました。tdiaryもUTF-8で書かれているし。

 で、以下分かったことをつらつらと。

UTF-8とは符号化のこと

 Unicodeは文字コードの定義で、UTF-8はその符号化手法の一つを意味するとのことだった。

 ちなんで、テキストなどを保存するときの文字コード選択にUnicodeとUTF-8ってのが出てくるのが多いけど、前者はUTF-16っていうべきものだそうな。

UTF-8は可変長

 ASCIIと互換性を保つために0x7fまでは一緒、その後は2~4バイトの長さを取るらしい。ちなみに、UTF-16の場合はU+FFFFまでは2バイト固定でそこから先はサロゲートペアってので4バイト使うとのこと。

 ということなので、ざっくり言うと、UTF-8の場合はアルファベットとかは1バイト、平仮名とか漢字とかは3バイトになるが、UTF-16の場合はともに2バイトになる。

機種依存文字とか(ここら辺はUnicode対応フォントでないと見られないかも)

 Unicodeでは丸数字(①とか)も定義されてるので使っても問題ないみたい。更に⑳より大きいのもあって、㊿まで定義されてる。

 ちなんで、Unicode表を見てみると何に使うのかよく分からないものが結構用意されてたりして、見てると割と面白い。そして、昔使いたくても使えなかった「♡」(ハート)とか「ℏ」(魔っ貨記号^H^H^H^H^Hディラック定数ってので使うみたいです)とかもあったり。

RubyのコーディングではUTF-16は使えない

 UTF-16の方が日本語中心に文章を書く分には容量的にも有利だし、可変長より普段使う分には固定長の方が扱い易いので、RubyもUTF-16で書けないかと思って調べてみたが、ASCII互換じゃないのでコーディングには使えないってことだった。但し、データとかで文字列を操作するのは使えるみたい。

 

 以上、今後はとりあえずUTF-8使っとけ、ってことで一つ。

[ゲーム]最近の東方星蓮船とか

 3つまではイージークリアできたので、今度は魔理紗Bで挑戦するも、6ボスの最後のスペルカードで玉砕すること二度。相変わらず、無理にアイテムを取りに行く際に被弾したりと、途中で無駄なミスが多いのが原因。