【问题标题】:Unicode not displaying correctly in my pageUnicode 在我的页面中未正确显示
【发布时间】:2013-02-25 03:44:45
【问题描述】:

在我的 html5 页面中,大约 80% 的字符串是 unicode。与我的本地服务器完美配合。上传到我的在线服务器时,页面未正确显示 unicode 内容。相反,它们都是问号!

我在开始编码页面时已经设置了元标记:

<meta charset="UTF-8">

在检查 Chrome 浏览器上收到的响应标头时,“utf-8”编码不存在。所以我添加了 php header() 来发送这样的 HTTP 标头:

header('Content-type: text/html; charset=utf-8'); 

现在,响应标头显示 utf-8 编码,但页面未呈现 unicode 字符串。还是问号!

我使用了我的 cPanel(在线服务器)中的文件管理器,当我选择在线编辑页面时,它会打开 utf-8 编码的页面并完美呈现!所以,这意味着文件的上传没有搞砸。对吧?

我也试过这个元标记(替换短的):

<meta http-equiv='Content-Type' content='text/html; charset=utf-8'>

还是没用! Unicode 内容不是来自数据库。它在页面上是完全硬编码的。

通过 Google Chrome、Firefox 和 Internet Explorer 测试。都显示一样!关于我应该在哪里调整的任何想法?

我的服务器是HostGator提供的VPS。

【问题讨论】:

  • 可以显示这些页面的示例吗?
  • 感谢 Akam。通过将编码设置为不带BOM的utf-8找到了解决方案。 :)
  • @halfer:谢谢,下次会按照这个程序进行。 :)
  • @halfer:完成。看看下面的答案。 :)
  • 太好了,谢谢@Akhilesh!

标签: php html unicode character-encoding


【解决方案1】:

解决方案由 Lisa Miskovsky 提供(查看她在这篇文章上方/下方的回答)。谢谢丽莎。

我所做的是,通过转到 Encoding 菜单栏,然后​​在我的 Notepad++ 编辑器中选择 UTF-8 Without BOM 中的编码来更改编码。现在也不需要显式发送 HTTP 标头(刚刚测试过)。我认为,由于缺少 HTTP 标头,它会考虑 charset 的元标记。

【讨论】:

    【解决方案2】:

    不确定它是否有效,但您也可以尝试将文件编码转换为 UTF-8(无 BOM)。

    【讨论】:

    • 天哪!我真是个白痴! :P 尝试了所有其他可能性,但错过了这个!谢谢:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-08
    • 2016-12-07
    • 2015-06-24
    • 1970-01-01
    • 2015-12-13
    • 2017-02-01
    相关资源
    最近更新 更多