- 締切済み
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)です。 ご指南のほど宜しくお願い致します。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- t-okura
- ベストアンサー率75% (253/335)
回答No.1
mysql クライアントとしてのエンコーディングは プログラムのエンコーディングと一致していますか。 set names utf8 などの SQL 文で mysql クライアントの エンコーディングを指定できます。 また、データベースから取り出したデータの utf8 フラグは どうなっていますか。DBD::mysql を使っているのでしたら connect() のアトリビュートに mysql_enable_utf8 => 1 を セットすると、utf8 フラグ付きでデータが取り出せます。
お礼
>t-okuraさん 解答ありがとうございます。 utf8に関して色々知らないことがありました。