【问题标题】:How to properly handle international character in PHP / MySQL / Apache如何正确处理 PHP / MySQL / Apache 中的国际字符
【发布时间】:2010-12-16 06:30:12
【问题描述】:

我需要用 PHP 创建一个可以处理所有地方的所有 Unicode 字符的应用程序——编辑字段、静态 HTML、数据库。有人可以告诉我需要设置/用于实现此目标的所有参数/功能的完整列表吗?

【问题讨论】:

    标签: php mysql apache unicode


    【解决方案1】:

    我使用了上述方法,并且效果很好。直到最近,当我的提供商将 PHP 更新到 5.2.11 并将 MySQL 更新到 5.0.81-community 时。在此更改之后,从数据库中正确检索了 unicode 字符,但所有更新都已损坏,并且 unicode 字符被替换为“?”。

    解决方案是使用:

    mysql_set_charset('utf8',$conn);
    

    即使我们使用了它也是必需的:

    SET NAMES utf8
    SET CHARACTER SET utf8
    

    另外 - 因为我们使用了 ADOdb,所以我们需要找到 PHP 连接句柄。我们使用了以下语句:

    mysql_set_charset('utf8',$adoConn->_connectionID);
    

    【讨论】:

      【解决方案2】:

      建议您使用 HTTP 标头或元元素将页面上的字符集设置为 utf-8。 W3C 建议您两者都做。并且元元素应该尽早出现在页面上。 (meta元素之前的所有字符都应该是ASCII,在几乎所有的字符编码中基本一致。有些浏览器遇到meta标签会重启页面渲染,这也是提早拥有它的另一个好理由。)

      此外,在所有接受用户输入的表单上放置一个accept-charset="utf-8" 属性。一般浏览器提交 POST 数据时会默认使用页面的编码,但确定也无妨。

      【讨论】:

        【解决方案3】:
        【解决方案4】:

        您需要研究的一些事项:-

        PHP

        确保您的内容被标记为 utf-8 :

        default_charset = "utf-8"

        安装mbstring。你可以找到它here

        确保您在 PHP 和 MySQL 之间使用 utf-8。
        调用mysql_set_charset("utf8");(或使用SQL查询SET NAMES utf8

        阿帕奇

        您还可以在此处设置页面的Content-Type: 类似这样的内容

        AddDefaultCharset utf-8

        MySQL

        确保所有表都使用 utf8 排序规则 utf8_general_ci;例如

        ALTER DATABASE mydb CHARACTER SET utf8;
        

        终于

        最后,用有趣的 unicode 样本测试东西,like these ones

        ٩(͡๏̯͡๏)۶

        更多有用信息来自when I tried this...

        【讨论】:

          【解决方案5】:

          重要提示:从 PHP 连接到 Mysql 时,还应确保使用 UTF-8 作为连接字符集!

          对于 mysqli,这是由

          完成的
          mysqli_set_charset($dblink, 'utf-8')
          

          http://de3.php.net/manual/en/mysqli.set-charset.php

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2023-03-12
            • 2011-03-23
            • 1970-01-01
            • 2010-10-15
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多