2

当我发布这样的 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 代码 è

我怎样才能让它不那样做?

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

我还认为这可能与我的 apache 中的 magic_quotes 有关,但未启用。

任何帮助表示赞赏

4

2 回答 2

1

在任何情况下,使用 UTF-8 对您来说都不好?如果不是,请尝试明确说明您正在使用 UTF-8 和 meta:

<meta charset="utf-8" />

它可能会解决你的问题。

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

无论如何,尝试强制您的表单每次都以 UTF-8 格式提交。

<form action="" method="POST" accept-charset="UTF-8">
于 2013-09-24T15:48:06.093 回答
0

这是字符集问题。

</head>在标记之前使用这一行。

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

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

并将这两行添加到您要保存数据的位置。

mysql_query( "SET NAMES 'utf8'" );
mysql_query( "SET CHARACTER_SET 'utf8'" );
于 2013-10-09T10:22:01.080 回答