【问题标题】:problem with special characters [duplicate]特殊字符的问题[重复]
【发布时间】:2011-04-22 08:49:14
【问题描述】:

我正在从 mysqlDb 将文章从我的博客检索到我的网站。文章在博客上显示得很好,但在网站上,一些字符,如 ţ、ş、ă 等被替换为内部带有问号的黑色方块。我在文档上设置了与博客上相同的“UTF-8”。

【问题讨论】:

    标签: php special-characters


    【解决方案1】:

    您需要告诉 MySQL 必须以 UTF-8 进行连接。为此,请使用函数mysql_set_charset(您需要 PHP 5.2.3)。如果你使用 PHP

    mysql_query("SET character_set_results = 'utf8', character_set_client = 'utf8', character_set_connection = 'utf8', character_set_database = 'utf8', character_set_server = 'utf8'", $conn);
    

    还要确保标题表明文档是 UTF-8 格式(header 函数和/或 HTML 元标记已正确设置)。

    同时确保您的 PHP 文件以 UTF-8 格式保存没有BOM。

    【讨论】:

    • mysql_set_charset() 是!非常感谢!
    • 是的,这是一个常见的陷阱。如果您不这样做,MySQL 会即时将数据转换为 latin1(相当于 utf8_decode)。
    【解决方案2】:

    您是如何将这些字符添加到文档中的?根据编辑器的不同,保存时编码可能会出现偏差。除了使用 PHP 标头指定编码之外,您是否在 HEAD 中使用 META 设置了文档类型?

    这里有一些关于这个主题的进一步阅读http://htmlpurifier.org/docs/enduser-utf8.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-04-19
      • 1970-01-01
      • 1970-01-01
      • 2021-08-05
      相关资源
      最近更新 更多