我遇到“”字符的问题。我在互联网上读到,它可能是未设置为“UTF-8”的BOM和/或字符集。 但即使使用这些设置也无效。
让我们谈谈:
我正在创建一个php页面,使用Dreamweaver在数据库表上上传HTML文件。 然后我使用以下代码将HTML代码存储到变量中:
$fileText= file_get_contents($target_file);
*其中$target_file
是上传的文件,如
<html>< head>< /head>< body>hello< /body>< /html>
使其简单(没有标签中的空格)
然后我使用:
将$fileText
存储在数据库中
$sql="INSERT into TABLE (HTMLfile) VALUES ('$fileText');
然后,当我查看数据库中的记录时,它会显示:
< html>< head>< /head>< body>hello< /body>< /html>
我在php页面中都有charset = UTF-8,其中是上传和插入代码,以及html上传页面。 然后我在Dreamweaver中做了以下事情:编辑&gt;偏好&gt;新文件。取消选择“包含Unicode签名(BOM)”。
我甚至尝试了各种php解码功能,但我不想阅读“&amp; lt html&amp; gt”等。我想在数据库中阅读“<html>
”。
有什么我想念的吗?提前致谢
答案 0 :(得分:3)
告诉PHP检测并从读取文件的开头删除字节顺序标记。
function strip_bom($string)
{
if (substr($string, 0, 3) === "\xEF\xBB\xBF") {
$string = substr($string, 3);
}
return $string;
}
$fileText = file_get_contents($target_file);
$fileText = strip_bom($fileText);
答案 1 :(得分:1)
你必须在mysql中设置charset utf8。
你必须调用mysql函数
$link = mysql_connect('localhost', 'user', 'password');
mysql_set_charset('utf8', $link);
感谢