• 締切済み

FORMタグで送ると文字化けしてしまう。

ubuntuサーバーを建ててプログラムを書いているのですが、formで送った文字が正しく受け取れなくて困っています。 Shift-JIS設定のformから日本語を送ると%がすべて\xに置換されてプログラムにおくられてきます。 プログラムはutf-8です。 これを解消する方法はないのでしょうか? 宜しくお願いいたします。

みんなの回答

  • yossu
  • ベストアンサー率60% (270/446)
回答No.2

accept-charsetは自分のコード属性ではなく 相手先(サーバ)が使用している属性を指定します。 即ちShift-JIS(ブラウザ)→UTF-8(サーバ)ならばhtmlに <form accept-charset="UTF-8" method="get" action="http://Hoge.com/hogesearch.cgi"> 等と記述するわけです。 その他"EUC-JP"になったりします。 Shift-JIS→Shift-JISならコード変換が要らないので 記述しなくても構いません。

keeeeeeeen
質問者

お礼

>yossuさん 再度ありがとうございます。 自鯖はUTF-8なのでさっそくそれで試してみます。 ありがとうございます。

  • yossu
  • ベストアンサー率60% (270/446)
回答No.1

ブラウザからのShift-JIS記述のformタグから キーワードを送ると文字化けすると言う事ですかな。 詳しくは知らないのですが自作の検索BOX寄せ集めページを 作成した時にクエリを送る各サイトの文字コードが違うために 文字化けするのを防ぐ様にformタグにaccept-charset属性を つけて送ると対応したコードにしてくれるみたいでした。 ただしIE6は未対応なためにFFやOperaなどで使用してました。 IE7以降の対応は判りません。 http://w4ard.s26.xrea.com/reference/xhtml11/attribute/accept-charset IEにはjavascriptで対応の記事 http://go4it.seesaa.net/article/110307462.html 参考にならなかったら済みません。

keeeeeeeen
質問者

お礼

>yossuさん 回答いただきありがとうございます。 >ブラウザからのShift-JIS記述のformタグから >キーワードを送ると文字化けすると言う事ですかな。 上記その通りです。 htmlのテンプレートでShift-JISを宣言し、formタグでもaccept-charset属性でShift-JISを入れたのですがうまくいきませんでした。 ちなみにブラウザはChromeです。

関連するQ&A