読者です 読者をやめる 読者になる 読者になる

orangain flavor

じっくりコトコト煮込んだみかん2。知らないことを知りたい。

プログラム言語における文字列エンコーディングの扱い方分類

├─バイト列と文字列は明確に区別されてるよ派
│ ├─文字列はUTF-16だよ派 (C#, Java, JavaScript)
│ └─文字列はUTF-16かUTF-32かコンパイル時に選べるよ派 (Python3)
│ 
├─バイト列とUnicodeで別の型があるよ派
│ ├─UnicodeUTF-16かUTF-32かコンパイル時に選べるよ派 (Python2)
│ └─Unicodeのサイズはコンパイラ依存だよ派 (C, C++)
│ 
├─バイト列だけどUTF-8フラグで区別するよ派 (Perl)
│ 
├─バイト列がエンコーディングを知ってるよ派 (Ruby1.9)
│ 
└─ただのバイト列だけどプログラマがエンコーディングを知ってるよ派 (PHP, Ruby1.8)

言語ごとの文字列の扱いについて分類したかったからやってみた。自分で書けるのはこれぐらい。分類がちょっと微妙。間違ってる所もありそう。

間違ってたり、他にもこんなのあるよってのがあればコメントを頂けると嬉しいです。



おまけ:
樹形図作るために作った。
タブで整形したテキストを樹形図に変換 - jsdo.it - Share JavaScript, HTML5 and CSS