[PHP-users 24113] Re: UTF-8のデータをhiddun属性でPOSTすると、データがEUC-JPになる
NAKAMURA Takeshi
1yen @ sh.rim.or.jp
2005年 1月 13日 (木) 10:54:00 JST
仲村@どしろーとです。
On Thu, 13 Jan 2005 01:53:12 +0900,
Masanori Kobayashi <markun @ leo.bekkoame.ne.jp> wrote:
> その理由は、自動変換をoffした場合、結局スクリプト内で受け取ったデータの
> コード判定のためにPHPのmb関連の関数を使用してコード判定し、変換するとい
> う作業をすることとなり、入り口で自動で行っていることを手動で行うだけにな
> るからです。結局同じリスクを負っていることに変わりはありません。
html に
<form action="foo.php" method="post">
入力して! <input type="text" name="foo"><br>
<input type="hidden" name="ditectcode" value="分かっている文字列"><br>
<input type="submit" name="submit" value="Submit">
</form>
とか書いておき、PHP で
$Encodes = array ("ASCII","JIS","UTF-8","eucJP-win","SJIS-win");
# $Encodes = mb_list_encodings (); でも良いかも知れません。
while ($Code = array_pop($Encodes))
if ("分かっている文字列!" ==
mb_convert_encoding($_POST['ditectcode'], mb_internal_encoding(), $Code)){
mb_detect_order($Code);
break;
}
}
if (!$Code){ 文字コード判別に失敗時の処理 }
みたいに最初に書いておけば、あとは
mb_convert_encoding($_POST['foo'], mb_internal_encoding())
とかで何とかなると思うのですが、駄目ですか?
項目毎に文字コードが変わったりすることがあるなら駄目ですけど...
# 掲示板で本文は化けないのに、タイトルだけ文字化けしたりする事が
# あるんから、駄目なのかなぁ。
----+----1----+----2----+----3----+----4----+----5----+----6----+----7----+
関西沖縄青年の集い がじまるの会 手伝い 一人だけの勝手に神奈川支部
仲村 武 <1yen @ sh.rim.or.jp>
# 頭の中では考えるのですが、プログラマーじゃないので
# 実際使った(書いた)事はありません(^^;
PHP-users メーリングリストの案内