我对发布这样的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@æøåèÆ' (length=17)
在结果中,您可以看到è标志已被ISO Latin-1代码&amp;#232替换;
我怎样才能这样做呢?
我页面中的编码是ISO-8859-10,我尝试将其更改为UTF-8,但没有运气。
我还以为它可能与我的apache中的magic_quotes有关,但是没有启用。
任何帮助表示赞赏
答案 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'" );