【问题标题】:Database Transfer using phpmyadmin - encoding issue使用 phpmyadmin 进行数据库传输 - 编码问题
【发布时间】:2014-10-06 12:54:25
【问题描述】:

我正在使用 phpmyadmin 将数据库从一台服务器传输到另一台服务器。我成功转移了它,但遇到了瑞典字符的问题。我可以看到瑞典语字符在表格中正确显示,但在 php 页面中它是错误的,似乎是双重编码或任何其他问题。有人可以帮忙吗?

【问题讨论】:

    标签: php mysql database phpmyadmin


    【解决方案1】:

    问题可能出在不同的部分。欢迎来到 Unicode 的世界!

    1. 确保 MySQL 中列的排序规则是 utf8_*(我个人更喜欢 utf8_bin)。
    2. 确保 PHP 页面告诉客户端内容是用 UTF8 编码的。这可以/应该通过两种方式完成:
      • 设置以下标头:header('Content-Type: text/html; charset=utf-8');
      • 在您的 HTML <head> 中添加正确的元标记:<meta charset="utf-8">
      • (注意:虽然理论上两者都不是绝对必要的,因为它们对于客户端来说是等效的,但最好是冗余的!)
    3. 确保与 MySQL 的连接使用 UTF8。这可以通过在连接到数据库后立即执行一个简单的查询来完成:SET NAMES 'utf8'(例如mysqli_query("SET NAMES 'utf8'");如果您使用的是 PDO 或 MySQLi OOP API,请相应地更改它)。

    奖励:如果您在 PHP 脚本中使用 UTF8,请确保以 Unicode 安全的方式处理所有内容。所以,更喜欢使用mb_* 函数来操作字符串,使用u 标志和preg_* 函数等等。记住,UTF8 字符在它们使用的字节数上是可变的,从 1 到 4!

    【讨论】:

      【解决方案2】:

      我的两个网站都有相同的设置,唯一的问题是数据库在将其传输到其他服务器后。两个网站的页面编码相同。

      你可以在这里查看

      http://www.abswheels.se

      http://www.dackis.se/abs/

      你可以看到差异。有什么建议吗??

      数据库内部也一切正常。我不知道为什么当我从数据库中获取带有特殊字符的数据时会出现问题。你可以看到两个网站的标题栏。客户端的一切都是一样的。相同的编码相同的设置

      【讨论】:

        猜你喜欢
        • 2020-02-26
        • 2020-11-05
        • 1970-01-01
        • 1970-01-01
        • 2021-10-22
        • 2021-11-21
        • 2013-10-29
        • 1970-01-01
        • 2017-04-06
        相关资源
        最近更新 更多