我接受用户将文本输入textarea,然后保存(它保存在一个简单的.txt文件中,并且还包含html)。然后使用file_get_contents()抓取文本文件,然后进行回显。这工作正常,除非我用稀有字符测试它。例如,当我用三叶草(♧)测试它时,它会将它保存到文本文件中,但是当我显示它时,它就像是。几乎所有罕见的符号都以â为前缀。我猜这是一些编码问题,但我不知道从哪里开始。更具体地说,如何确保任何用户输入最终都能正确显示?感谢。
答案 0 :(得分:0)
如何确保任何用户输入最终都能正确显示?``
仅接受UTF-8编码的字符串
PHP附带了一个名为mb_check_encoding的便捷函数 - 检查字符串是否对指定的编码有效 使用此功能检查用户输入是否不是“稀有”
if(mb_check_encoding($string, 'UTF-8'))
{
// do stuff, input is UTF-8
}
else
{
// input is not UTF-8
}
答案 1 :(得分:0)
试试这个..
在php
中定义的标题内容类型 header("content-type: text/html; charset=utf-8");
http://hiox.org/33451-non-standard-characters-handle-in-php.php
答案 2 :(得分:0)
您可以在回复它之前将特殊字符转换为HTML entites:
htmlentities($mytext);
然后浏览器会将它们转换回另一端的正确字符。有两个小缺点:
这可能不太理想,但应该可以胜任。