文字など所詮数字の列なのです

http://d.hatena.ne.jp/piyo2-moko/20080324#1206364751

8ばいとお化けwwちゃうちゃう、それを言うなら「8進おばけ」かと。

ぴ \202\322
よ \202\346
に \202\311
ゃ \202\341
ん \202\361

コンピュータは数字しか扱えないから、数字の列を人間が勝手に文字とみなしている。8進数で202と322で表される数字(10進に直すと130と210)の列で「ぴ」という文字を表現している。数字の列と文字の対応が文字コードだ。
人間には文字に見えるけど、コンピュータの中ではただの数字の列(それどころか0と1の列)にしか過ぎない。だから暗号みたいだと思うのは当然の感覚。
やっかいなことに、日本語を表現する文字コードは複数ある。Windowsでよく使われているShift_JISUnixでよく使われているEUC-JPなど。「ぴ」はShift_JISで「\202\322」だが、EUC-JPだと「\244\324」だ。だから、EUC-JPで書かれたテキストをShift_JISと解釈してしまうと、めちゃくちゃな内容に見える、それが文字化け。
幸いなことに、(日本語の範囲ならば)文字コードをそれなりの精度で推測することができる。ある程度長いテキストならばまず判別できる。数字の並びの規則性をみればわかるからね。

ちなみにShift_JISではひらがなの1バイト目は\202だが、カタカナの1バイト目は\203。2バイト目の「s」は8進表記で「\163」のこと。「\163」は半角の「s」という文字に割り当てられているから「\163」ではなくて「s」と表示されている。

ピ \203s

Shift_JIS文字コード表をどうぞ。ただし、1バイト目と2バイト目は16進表記になっているので変換しないとだめ。8進数の202は16進数の82だから82の行を眺めてみよう。ひらがなが並んでいるでしょ。下の83の行にカタカナ等が並んでいる。

っつーか俺、あんま文字コードには詳しくないです(涙) 文字コード関連の話題はとても深く難しい。だけどソフトウェアの内部で適切に扱ってくれるから、文字コードについて全く知らない人でもパソコンで文章書いたりできる。だけど、プログラミングというのはソフトウェアを書くということなので、文字コードを意識しないといけないケースもでてくる…