表单POST数据正在改变我的输入

时间:2013-09-18 07:46:54

标签: php html apache

我对发布这样的HTML表单时收到的POST值有疑问:

<form action="" method="POST">
    <input type="text" name="test">
    <input type="submit">
</form>

如果我在输入字段中键入jöachi@æøåèÆ并对$ _POST值执行var转储,我会得到:

array (size=1)
  'test' => string 'jöachi@æøå&#232;Æ' (length=17)

在结果中,您可以看到è标志已被ISO Latin-1代码&amp;#232替换;

我怎样才能这样做呢?

我页面中的编码是ISO-8859-10,我尝试将其更改为UTF-8,但没有运气。

我还以为它可能与我的apache中的magic_quotes有关,但是没有启用。

任何帮助表示赞赏

2 个答案:

答案 0 :(得分:1)

在任何情况下使用UTF-8对你都不好?如果没有,请尝试明确表示您正在使用带有meta:

的UTF-8
<meta charset="utf-8" />

它可能会解决您的问题。

在我的所有Web应用程序中,我都使用UTF-8,并且我始终确保以这种方式进行所有通信,甚至是所有数据库排序。

无论如何,请尽量强制您的表单每次都以UTF-8提交。

<form action="" method="POST" accept-charset="UTF-8">

答案 1 :(得分:0)

这是字符集问题。

</head>代码之前使用此行。

<meta http-equiv="content-type" content="text/html; charset=utf-8" />

如果要在MySql中保存数据,则首先将mysql排序规则更改为UTF-8 general ci

并在保存数据的位置添加这两行。

mysql_query( "SET NAMES 'utf8'" );
mysql_query( "SET CHARACTER_SET 'utf8'" );