最近『ジョエル・オン・ソフトウェア』を読んでいます。今更!
そのおかげで、プログラミングなどをする仕事で働き始めて3年になりますが、やっと「何で日本語の文字は16ビットで表現できるはずなのに、UTF-8だと3バイトになるの?」 と言うのが分かりました。というか、疑問に思ってただけで別に調べなかったので知らなかっただけでした。
Wikipediaに載っているとおりです。 16bit使うためには3バイト必要な仕様なのですね。
検証
1 2 3 4 5 | # in ruby 1.8.7 $KCODE = "none" # but script encoding is utf-8 uft8_nihongo_str = "日本語の文字" uft8_nihongo_str.split(//).enum_slice(3).map{|v| (v.first[0] >> 4).to_s(2)} #=> ["1110", "1110", "1110", "1110", "1110", "1110"] |
独学で必要なことだけ調べてやってきてると、こんな簡単な知識の欠落が起こりうるので、資格試験とかやっぱ馬鹿にできないんじゃないか、と思った。





