Php ’;正在显示,而不是-
Php ’;正在显示,而不是-,php,character-encoding,non-ascii-characters,Php,Character Encoding,Non Ascii Characters,™而不是php页面中的- 我尝试使用不同的编码类型,如: <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/> 及 但结果是一样的。有什么问题吗 输入 1 结果 11–Lorem Ipsum 确保您的html标题指定utf8 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
™正在显示代码>而不是php页面中的-
我尝试使用不同的编码类型,如:
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
及
但结果是一样的。有什么问题吗
输入
1
结果
11–Lorem Ipsum
确保您的html标题指定utf8
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
这通常对我来说很有用(显然,如果内容是utf8)
如果设置内容类型,则不需要转换为html实体
检查
这可能会对您有所帮助。看起来您的源数据在此过程中已从一种编码转换为另一种编码。请确保所有步骤的编码都相同
您的(MySQL?)数据是否存储为UTF8
您的.php文件是否保存为UTF8
当将UTF8数据作为ISO-8859-1数据处理时,通常会弹出这样的转换错误。(多字节与单字节?不确定)。元标记没有改变输出这一事实强烈表明有什么东西覆盖了它;可能是HTTP头中指定的字符集(优先于元标记),您确定没有在那里设置它吗?您的文档很可能是用UTF-8编码的,因为是UTF-8编码字符的iso-8859-1表示形式
您需要的是您描述的元标记:
<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
由于它不工作,标签可能会被忽略。建议使用浏览器并检查它试图使用的编码(工具-Chrome中的编码)
- 如果浏览器使用UTF-8,则表示您对字符进行了双重编码。如果需要,请检查您的代码,以免出现过多的
utf8\u编码(…)
- 如果浏览器使用Latin1(iso-8859-1),您的标记将被HTTP标头忽略或覆盖。请尝试使用联机验证程序验证HTML。使用浏览器的开发工具检查发送的标头信息,以确保iso-8859-1未设置为编码
从javacode创建文件并将编码设置为UTF-16时也遇到了同样的问题。如果这两个元标记没有任何不同,那么HTML可能会在某个地方被破坏。如果ISO-8859-1为您提供了而不是-
,那么您就对字符串进行了双重编码如果服务器正在发送一个带有字符集的真正HTTP内容类型头,那么meta标记没有任何效果。相关:(
标记是IMHO中最不相关的部分)。这utf8\u encode()
让我明白了。似乎我添加它是为了解决问题,但通过设置正确的meta(如上所述)并删除该行代码来解决问题。谢谢:)
<?php
header('Content-Type: text/html; charset=utf-8');
mb_internal_encoding('utf-8');
?>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8">