• 締切済み

uri_escapeしない方法について

現在webページを作っているの者です。 (1)sjis設定のhtmlのformタグから(2)utf8で書かれたperlプログラムに送り、(3)その送られた文字をいったんDB(sjis設定のMySQL)に入れた後、(4)再びperlのプログラムでhtmlに吐き出すという、ごく普通のプログラムを書いています。 この際(2)のプログラムでuri_escapeし、(4)でuri_unescapeするという作業を行っています。 エスケープしないと文字化けてしまいます。 前にeucで書いたプログラムではいちいちこのような(escapeに関する)作業をせずともうまくいったのですが、今はこうしないとうまくいきません。 正直入力の度にエスケープするのは面倒なのですが、これを回避する方法はないでしょうか? サーバーはapache(ubuntu)です。 ご指南のほど宜しくお願い致します。

みんなの回答

  • t-okura
  • ベストアンサー率75% (253/335)
回答No.1

mysql クライアントとしてのエンコーディングは プログラムのエンコーディングと一致していますか。 set names utf8 などの SQL 文で mysql クライアントの エンコーディングを指定できます。 また、データベースから取り出したデータの utf8 フラグは どうなっていますか。DBD::mysql を使っているのでしたら connect() のアトリビュートに mysql_enable_utf8 => 1 を セットすると、utf8 フラグ付きでデータが取り出せます。

keeeeeeeen
質問者

お礼

>t-okuraさん 解答ありがとうございます。 utf8に関して色々知らないことがありました。