【问题标题】:special characters turn into question marks php html特殊字符变成问号 php html
【发布时间】:2012-05-05 09:58:21
【问题描述】:

我阅读了在 stackoverflow 和其他论坛上找到的所有主题,它托管在 hostgator 上,我之前从未遇到过他们的服务器问题,尽管例如引号被转换为问号,正常的不带黑色菱形或任何东西。这是我尝试过的:

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

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

如果重要的话,这就是我用于 doctype 的内容:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

我使用 Unitron for osx 来编写我的代码,并且我检查了文件是否应该包含 utf-8。

我试图显示的文本只是 html,在一个 php 页面中。

有人知道如何帮助我吗?

【问题讨论】:

  • 你说的是用户输入吗?您是否将其存储在数据库中?什么时候“变成问号”?这个问题需要补充很多细节。
  • 能否提供问题页面的链接?
  • 引号会变成问号吗?尝试使用 stripslashes() 或 mysql_real_escape_string() ...请提供更多信息。
  • socialscenes.co.uk/v1-5/termsandconditions.php 不是用户输入,只是 php 页面中的 html 输出

标签: php html character-encoding character meta-tags


【解决方案1】:

您应该使用htmlentities 将文本中的任何实体转换为html 实体;例如,版权标志将变为 © &amp;copy;

【讨论】:

  • 它实际上不是 php 产生这个文本而是 html,它只是在一个 php 页面内..
  • 如果带有特殊字符的内容不是动态的,你可以通过这个函数一次,然后将输出粘贴到你的html页面中。这样,您就不会为每个请求调用此函数,从而减少延迟。
【解决方案2】:

只是一个猜测:检查你在你的 html 中的引号是否真的是引号。它们可以是其他一些看起来相同但实际上不同的角色。从其他来源复制粘贴时可能会发生这种情况。

尝试手动重写导致问题的部分代码。

如果不是这样,请尝试使用以下 php 函数中的一个或两个:
mb_internal_encoding
mb_http_output

您的 HTML 也无效:HTML validator

【讨论】:

    【解决方案3】:

    检查您的文件是否以 UTF8 编码,例如使用 Notepad++ 转到“编码”>“转换为 UTF8”并保存文件。

    【讨论】:

    • 他说文件是 UTF-8 格式。但是正确的选项是:“转换为 UTF-8 而不使用 BOM”
    猜你喜欢
    • 2015-05-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-21
    • 1970-01-01
    相关资源
    最近更新 更多