|
『うわぁ、文字がほへはへだぁ!』
『まゆこ餅は、うちうじんか!』
『違うよぅ。ちゃんと日本語話せるよ。こにちは』
『むー。なんだか怪しいが、なんで化けるか教えよー。』
やっかいなことに、日本語の漢字コード体系というのは複数ある。なんで統一しないんだ!と、歴史を知らないおいらはこぶしを握りしめちゃったりした時期もあったが、ま、しゃーないもんはしゃーない。
そういうもんです、はい。
漢字コードは3種類あって、Mac や Windows の世界では、Shift-JIS なのである。SJIS
ともいう。ほんでもって、UNIX は EUC とか、 JIS なんである。日本語を扱う CGI ではこれらを変換する必要があるのだ。
例えば、掲示板を作ったとしよう。Netscape や Internet Explorer などはこの3種のコードに対応しているが、それ以外のブラウザなど、利用者がどんな漢字コードで書いてくるかわからないよね。それを逐次変換してやる必要があるわけなのだ。これをしないと、化け化けになっちゃいます。
掲示板などいろいろな CGI を作成するたんびに、漢字コード変換のプログラムをいちいち書いてたんでは非効率だよね。プログラムが長くなるし、その分ミスも多くなる。そういった、繰り返し使われる部分はサブルーチン化して後で使い回しができるように、切り出してひとつのファイルにするのだ。これをライブラリファイルと言う。
そーんなことは、ずぼらなおいらが考えるまでもなく、既に漢字コード変換に関しては『 jcode.pl 』 というライブラリがあったりする。嬉しいねぇ。
作者は、IIJ の Kazumasa Utashiro 氏ですだ。現在は、ヴァージョンが 2.13 が最新のようです。以下の場所にあるよ。
Jcode.pl ftp://ftp.iij.ad.jp/pub/IIJ/dist/utashiro/perl/
・5Cを含む文字コードっていったいぜんたいなんですか?
Shift-JISにはさらに問題が!
これはや〜ですねぇ。なんと、"○○5C" というコードの文字はPerlなどを使って表示すると文字が化けてしまうんですよ。以下の文字ぐらいしか知りませんがこれらの文字の後ろには
\ マークをつけるて回避しよう!

【おまけ】
Macでは Shift-JIS ってのは解ったよね。例えば、左下のような html ファイルを書いたとしよう。
| ↓ Shift-JIS |
↓ JIS |
↓ EUC |
<html>
<head>
<title>やっほぅ</title>
</head>
<body>
<p>まゆこ餅だよ、こにちは。
</body>
</html> |
 |
 |
これと同じ内容を JIS と EUC で書いて Mac の SimpleText で開いた結果が真ん中と右。ね、化けらったでしょう(古い?)
『うわぁ、変な文字が入ってぅ〜』
『なんじゃい、騒がしい!』
『あのね、
が入ってるの。』
『むー。これ
ね。 しゃあない、説明したるか。でもこれ→ なんて呼ぶんだ?(笑)』
もう勘弁してって感じだけど、漢字コード以外に、改行コードも機種毎に違ったりする。これは日本だけの問題ではないのだろうが...
改行は同じ改行でも、Macinrosh と Windows と UNIX では違うのである。改行コードには、CR
(Carriage Return) と LF (Line Feed) がある。
これを Macintosh では CR だけで改行をあらわすのに対し、Windows では、CR + LF
と2つ並べて改行とみなす。UNIX では、LF だけを使うのである。上記で まゆこ餅が見た、
というのは、Macintosh の SimpleText で Windows で作成したファイルを開いたときに表示されるものである(注:MacOS
8 以降。これ以前だとまた違う表示になる)
この は、Macintosh では使わない、LF
が化けて出たものなのである。
ほんでもって、下の図を見ていただきたいのだが、UNIX 改行だと、CR がないのでだらぁ〜んと1行表示になってしまうのだ。
| ↓ Macintosh |
↓ Windows |
<html>
<head>
<title>やっほぅ</title>
</head>
<body>
<p>まゆこ餅だよ、こにちは。
</body>
</html> |
<html>
<head>
<title>やっほぅ</title>
</head>
<body>
<p>まゆこ餅だよ、こにちは。
</body>
</html> |
| ↓UNIX |
<html> <head> <title>やっほぅ</title> </head> <body> <p>まゆこ餅だよ、こにちは。 </body> </html> |
じゃあ、Windows ではどうなるんだろう?と思ってやってみたら、Windows98 のメモ帳で開くと、Macintosh
改行も、UNIX 改行も以下のようになってしまった。CR が点になっている。ふ〜ん。なんか、前は黒い■が出ていたような気がしたんだが... はて?
| ↓ Macintosh & UNIX |
|
| <html>・<head>・<title>やっほぅ</title>・</head>・<body>・<p>まゆこ餅だよ、こにちは。・</body>・</html> |
|