作者: 閑舎
日時: 2008/1/07(13:36)
丁寧なアドバイスありがとうございました。

"Bruce." <kbk@...> さん wrote.

> いろいろ事情があるとは思いますが、後々のことを考えれば入力を取り込んだ
> ところでPerlのUnicode文字列に変換するか、せめてUTF-8に変換してしまって
> 内部での処理はUTF-8で行い、出力するときに変換するなどするようにして
> しまった方が良いと思います。

・以前書いて、溜っているソースの内部コードが EUC-JP で、内部的に EUC を
  使うとそのまま使い回しができる

・ブラウザに渡す

  <meta http-equiv="Content-Type" content="text/html; charset=...">

  部分が EUC-JP だと、WindowsXP/IE6 では POST はいいものの GET で日本語
  直書きの URL を使うと文字化けする(IE7はOK。SJIS だと IE6/IE7 ともOK)。

  例: <a href="/cgi-bin/test.cgi?mode=test&abc=送信成功">送信</a>

  といって URLENCODE を全て入れると手間がかかるので止めたい…。

  というような状況がありました。

  そこで、現時点では、内部的・汎用的には EUC、GET も使うなら、ブラウザに 
  SJIS を渡す、のが現実的、と判断、取りあえずそれで統一しました。

当サーバの PukiWiki も昔 EUC-JP が配布先の標準だったのを検索文字がらみの
問題で無理矢理 UTF-8 にしてインストールしたんですが、バージョンアップ、
ちょっとした修正などサーバ上で直接編集する場合 UTF-8 対応していないソフ
トが介在すると使えないので困る、VineLinux がやや遅れた OS だったのもあり、
もろもろ UTF-8 はまだ標準環境としてちょっと整ってないと感じていました。

でも、WindowsXP/IE6 で HTML の文字コードを UTF-8 にしてみると

  例: <a href="/cgi-bin/test.cgi?mode=test&abc=送信成功">送信</a>

は文字化けしませんね。UTF-8 標準、は遠くない話かな。

--
本田博通(閑舎)
テキストとスクリプトの http://www.rakunet.org/TSNET/