2012年2月19日

accept-charsetは未完全

HTMLの入力フォームの内容をSubmitボタンで送信する時、
フォームを設置しているページの文字コードと
情報を送信する先の文字コードが違う場合
form内に
accept-charset=""
を追記する。
・・・ただし、
致命的なことにIEが認識しないなどの欠陥があるので、
根本的な解決策としては使用できない。



ふざけるなっ!



ごもっと。



そこで複数のサイトでは
Javascriptのonclickを用いてなんとか解決している。

入力フォームの設置ページと
入力情報の送信先の文字コードが違う場合

HTMLの記述
<form method="POST" action="<?php echo $_SERVER["PHP_SELF"] ?>" accept-charset="utf-8">
<input type="hidden" name="dummy" value="&#65533;">
<!-- 上記 value="&#65533;" はUTF-8 の場合 -->
<!-- EUC-JPの場合はvalue="&#xFDFE;" にする -->
<!-- もしくはサブミット部に下記のようなjavascriptを施して回避する方法もあり -->
<input type="submit" onClick="buff=document.charset;
document.charset='UTF-8';document.form[0].submit();
document.charset=buff;">

0 件のコメント:

コメントを投稿