【问题标题】:PHP MYSQL Collation Speical Characters XML->PHP->MYSQLPHP MYSQL 排序规则特殊字符 XML->PHP->MYSQL
【发布时间】:2014-05-20 05:45:26
【问题描述】:

我正在尝试使用 PHP 将 XML 文件中的数据导入 MYSQL DB。我能够让代码正常工作,但是当我查看数据库中的数据时,会有特殊字符。例如,当我在浏览器中查看 XML 时,它显示为“户外天气好……”,但在 DB 中却显示为“户外天气好……”。

我已经在我的数据库中为该字段循环了所有不同类型的排序规则,但它似乎没有多大帮助。有时它会出现上面提到的字符,而其他字符则显示为???。

我也尝试在我的 PHP 中使用以下代码同步数据

$mysqli->query("SET NAMES 'utf8' COLLATE 'utf8_general_ci'"); 

但是,我又一次没有运气。

感谢您阅读本文并提供帮助!

阿克谢

【问题讨论】:

    标签: php mysql xml collation


    【解决方案1】:

    您需要将字符集连同您的排序规则一起更改为 UTF-8:

    ALTER TABLE tablename CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;
    

    您看到的是一个 Unicode 省略号字符 (...) 被转换为另一个字符集,这可能是 Latin1。这就是它看起来乱码的原因。

    【讨论】:

    • 感谢您的回复。我在我的数据库和适当的表上运行了你给我的脚本,但它并没有改变角色出现的方式。我截断了我的表并再次重新导入了 XML 文件,我得到了相同的结果。您还有其他想法吗?
    猜你喜欢
    • 2011-08-21
    • 1970-01-01
    • 2010-10-12
    • 1970-01-01
    • 1970-01-01
    • 2015-12-31
    • 2013-03-26
    • 2015-05-23
    • 2014-11-17
    相关资源
    最近更新 更多