文字化け(の恨み)


この所、人生の春休みで、連日Webを更新しているのだが、昔からの癖で気を
付けている事がある。

それは、各種ブラウザーでちぇんと見えるかという点だ。
Netscape 4.X(は、もう引退してもいいよね)、w3m、Firefox、IEぐらいで
ちゃんと見えればいいよね。
あれ、オペラとかサファリ(でしたっけ?)は、どうしたと言うのは、財政上の
都合で却下します。

所が、思わぬ伏兵が現れたのだ。そう、携帯に乗っている、どこの馬の骨とも
分からない(失礼が有ったらお許し下さい)ブラウザでも、ちゃんと見えるか
をチェックせにゃならん。
(これも、最近自分が携帯持ちになったから! -- 今までは携帯持っていたって
女房からリモコン操作されるだけでしたから、要らんと拒否してたのです。)

まあ、そんな事で自分のページを携帯から確認してみると、見事に文字化け
してますなぁ。unixだと、豆腐文字になる事が多いけど、携帯だと ・ に
なるのね。
これは、unixだと豆腐の角に頭をぶつけて死んじまえと言う黙示。携帯だと、目
を点にして念力で文字化けを克服せよと言う、メッセージに違いない!

今回ページを作り始めた時、テンプレートにあえて meta charset は入れなかった
んです。
だって、原稿をunix機で書く場合もあるし、女房の通販発注端末機である
Windows機で書く場合もあるし ...
デフォの文字コードが皆違うので、charsetは省いておきたかったのでした。
省いておいても、大体ブラウザーが勝手に文字コードを推測してよきに計らって
くれるから大丈夫と思ってたんです。
でも、携帯の上に載ってるブラウザーは、そこまで進化してないみたい。

今は、WIndows機で書いてる事が多いから、charset=SJIS でいいのかな?
調べるのがめんどいので、私が巡回してる所のみなさんは、どうしてるか
調べてみよう。htmlのソースを見るなんて久しぶりだなぁ。

で、見てみると、十中八九の人が、charset を宣言してますね。携帯に優しい
ページ作りをされてるって事で、喜ばしい事です。
でも、SJISを宣言してる人が一人もいなかったと言う事は、私が巡回するページ
に隔たりがあるって事です。
古参の人は、ISO-2022-JPか、EUC-JPが多いですね。若い人(?)は、UTF-8
(== Linuxな人と推測)と思われます。世代が分かって面白い。

で、SJISの場合は、どう設定すんだっけ? RFCで取り決めあったっけ?
それとも、W3C?
答えは、Firefoxのメニューに載ってました。
Shift_JIS だってさ。でも、なんでSJISの場合だけ、繋ぎのキャラクターが
'_' アンダースコアなんだよう? と、変な所に疑問を持ったのでした。
誰か偉い人、教えてくださいな。

と、まあ、話がこれだけで済めばいいのですが ...
サーバーに上げる前に一応Firefoxにページを食わせてみて、ちゃんと文字コード
を正しく認識してる事を確認。いざ、サーバーに上げたやつを見ると...

見事に文字化けしてますよ。FirefoxやIEやw3mで見ても化けてる。
はてさて、ftpツールが気を利かせて、文字コード変換なんて言う余計なお世話を
焼いてくれてるね。
調べてみたら、やっぱりですよ。リモート機の文字コードに合わせますボタンが
onになってました。このボタン、押しやすい所にかるから要注意だな。
と言うか、そんなものを容易に変更出来るようにしておいてくれるI/Fに
疑問を持った次第。

とかく、ftpは、asciiモードだとかbinaryモードだとかもあって、気をつけな
ければならないから、ここん所は、余計な事ナシのscpとか使えるように
なりませんかね >某ISPの方。

ああ、そうそう、昔のページでcharsetが有ったり無かったりするのがあるので
ご容赦をば。

まあ、これぐらいの文字化けなら笑って済ませられるけど、某VC++には、腹が
たったので、ちょいと恨みを書いておきます。

c++のソースをコピペして、VC++でコンパイルした時の事。
訳の分からないエラーがぼろぼろと出てきた。どう見たって、文法的には
合っているのに、エラーだと抜かす。
エラーをよくよく見ていったら、cp932うんたらこーたら と言うのに
出くわした。で、合点がいった。
cp932って、MS仕様のSJISなんだわ。バックスラッシュの呪いとでも言うのかな。
兎に角、SJISは使うなと。しょうがないので、Unicodeに変換してあげたら
山のように出てたエラーがスーと消えたのには、脱力しましたよ。

Windows 7 からは、Unicode を表に出して、みんなのひんしゅくと一部の人の
喝采を受けませんか >MS殿

文字コードと言えば
FreeBSD ja_JP.eucJP
Debian  ja_JP.UTF-8
Windows cp932
な訳であるが、それぞれの事情があって統一出来ていない。
FreeBSDをUTF-8にしたかったのだが、kterm Loveな私には、ちと無理な相談。
だったら、Debian を、eucJPと言う線もあるけど、まあ、Debianは生活環境
じゃ無いと言う理由で、そのままになっている。

FreeBSDが入っている実機は、今は亡きAkia製NotePCなんだけど、最近あちこち
に、がたが来ている。
どのぐらいがたがあるかと言うと
 CDドライブが死んでいる
 本体のLANが死んでいる(pcmciaで代用)
 音系が死んでいる
 サスペンドさせて蓋を閉めておいても、振動か何かで蓋が開いた事に
 なって、いつの間にか生き返っている。(まじ、怖いよぅ)
 古いやつなので、USBブートも出来ない(これは、しょがない)
でも、月に一回の Buildworld を無事にこなしているので、引退させる訳に
もいかず、腐れ縁での付き合いです。

だから、Windows上で、FreeBSD on VMWAREを使う機会が増えつつある今日
この頃。でも、WindwosでFreeBSDまで入って行くのがまどろっこしい事も
事実なんで。。(なんと、贅沢な)

で、Windows上で、*unixもどきが出来ないかと、模索中なんです。
まずは、nkfだかwkfだかの変わりにする積りで、Windows用のemacsでも
入れてみるかな。(こういうのを、本末転倒と言うのだろうな)