’
在 php 页面中显示而不是 -
我尝试使用不同的编码类型,例如:
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
和
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
但结果是一样的。可能是什么问题呢?
输入
– Lorem Ipsum.<strong style="color:#A8A8A8;">1</strong>
结果
1 – €“Lorem Ipsum.
确保您的 html 标题指定 utf8
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
这通常对我有用(很明显,如果内容是 utf8)。
如果设置了内容类型,则不需要转换为 html 实体。
检查http://php.net/manual/en/function.mb-convert-encoding.php
<?php
header('Content-Type: text/html; charset=utf-8');
mb_internal_encoding('utf-8');
?>
也许这会对你有所帮助。
看起来您的源数据在此过程中从一种编码转换为另一种编码。尝试确保所有步骤都具有相同的编码。
像这样的转换错误通常在将 UTF8 数据作为 ISO-8859-1 数据处理时弹出。 (多字节还是单字节?不确定)。
meta 标签没有改变输出的事实是一个强有力的指标,表明有一些东西覆盖了它;可能是 HTTP 标头中指定的字符集(优先于元标记),你确定你没有在那里设置它吗?
您的文档很可能是用 UTF-8 编码的,因为
–
是 UTF-8 编码字符 –
. 的 iso-8859-1 表示
你需要的是你描述的元标签:
<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
因为它不起作用,标签可能会被忽略。建议使用浏览器并检查它尝试使用的编码(工具 - Chrome 中的编码)。
utf8_encode(...)
从 javacode 创建文件并将编码设置为 UTF-16 时遇到同样的问题。
添加以下标题标签:
<meta charset="UTF-8">