我从表格中获得以下标题$ _POST:
Google’s New Partner Android Update Initiative: Very Promising — Maybe; We’ll See
在处理程序页面上,如果我做的第一件事就是
echo "<pre>";
print_r($_POST);
die();
我明白了:
Google’s New Partner Android Update Initiative: Very Promising — Maybe; We’ll See
我知道有转换功能和功能转义字符及其HTML等价物,但我如何确保以正确的编码将此内容添加到$ _POST中?
干杯,
答案 0 :(得分:2)
不确定这是否有帮助,但似乎UTF-8编码混淆了(控制字符对我来说似乎有些熟悉......)。尝试使用utf8_encode()或utf8_decode()输出。
答案 1 :(得分:2)
带有表单的页面和显示页面都需要使用相同的字符集。要重现您显示的行为,我必须使用
创建2个页面,一个表单 <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
发布到没有它的页面。
如果我将元标记放在两个页面中,它会正确输出,如果我从两个页面中删除它,它会正确输出。
如果只有表单有,你会得到你发布的内容,如果只有接收页面有,你会得到?。
test.php的
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<form method="post" action="test2.php">
<input type="text" name="string">
<input type="submit">
</form>
test2.php
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<?php
if(isset($_POST['string']))
{
echo "<pre>";
print_r($_POST['string']);
die();
}
?>
如果我将你的字符串粘贴到test.php的输入框中,点击提交,我会在test2.php中正确地恢复它。如果我删除test2.php的第一行,我会得到你描述的行为。