唯物是真 @Scaled_Wurm

プログラミング(主にPython2.7)とか機械学習とか

日本語だとUTF-8よりもUTF-16の方が軽い?

今更知ったんですが、日本語だとUTF-8よりもUTF-16の方が軽いんですね
なんとなく数字が大きくなってるからUTF-16の方が重いんだと思ってました

UTF-8だと英語のアルファベットとかは1バイト使うらしいけど、日本語の文字は主に3バイトらしい
対してUTF-16だと英語でも2バイト使うけど、日本語もだいたい2バイトらしい
ちなみにUTF-32だと、固定で4バイト使うみたいです

試しに手元にあったニコニコ動画コメントデータセット(コメント部分だけ)のファイル75GBをUTF-16に変えたら57GBとおよそ4分の3になりました


以下の本を読んだんですが、符号化文字集合と文字符号化方式 とか意識したことがなかったので勉強になりました
とりあえずUnicodeを使っておけばいいのかと思ったんですが、結合文字とかサロゲートペアとか字体の違いとか他の文字コードと変換した時の文字化けとか、Unicodeの範囲だけでもややこしいことが多いですね……

プログラマのための文字コード技術入門 (WEB+DB PRESS plus) (WEB+DB PRESS plusシリーズ)

プログラマのための文字コード技術入門 (WEB+DB PRESS plus) (WEB+DB PRESS plusシリーズ)