(X)HTML

任意の文字コードをformから送信する

うちのサイトは何か文字化けの記事ばっかり書いてる気がする・・・(笑)
今回はフォームで検索したときに、日本語をいれたら結果キーワードが文字化けしたのでその修正。

フォームを設置する際に設置するページと結果を表示するページで文字コードが異なる場合、
検索結果が文字化けになるのでフォームタグの中にaccept-charsetを入れてあげることで解決する。

<form method="POST" action="" name="form" target="_blank" accept-charset="utf-8">

上のサンプルは検索結果ページがutf-8の場合。ついでに検索結果を表示するときに別窓で表示したかったのでtarget指定もいれておいた。

IE用に修正

IEでaccept-charsetをサポートしていない。
IEェ…!!
ので、探してみたところ送信ボタンをクリックしたときにjavascriptで文字コードを指定して渡す方法がベターらしい。

<input type="button" value="送信" onclick="buff=document.charset;document.charset='utf-8';document.f1.submit();document.charset=buff;">

今回は検索結果を別窓で表示するのですが、もし元のページにもどって…という操作の場合、
IEでは、戻るボタンを押したら元のページが文字化けを起こすそうなのでその対応も必要。IEェ…!!

参考:ページの文字コードとは違う任意の文字コードをformから送信する方法

  • この記事を書いた人

ゆず

忘れないように自分の覚書と、誰かも困っているかもしれないので参考になればいいなくらいの軽い備忘録です。
一杯おごる

-(X)HTML