【问题标题】:Best practices about parsing multi language feed解析多语言提要的最佳实践
【发布时间】:2011-06-30 08:24:35
【问题描述】:

我在解析来自不同提要的数据时遇到问题,其中一些是英语,另一些是意大利语,还有一些是西班牙语。我正在使用 PHP 脚本进行解析并将解析后的数据保存到我的 MySQL 数据库中。

问题在于,当我解析包含“非常见”字符的项目时,例如:“Stage di Viareggio Più”,当我查看数据库时,该短语以这种方式存储:“Stage di Viareggio Più”。

我的数据库可以使用那种字符,因为当我手动输入该字符时,它可以正常工作,在原始提要(rss 文件)中,该短语也可以,我认为是我的 PHP 服务器正在更改字母。我该如何解决这个问题?谢谢!

【问题讨论】:

    标签: php mysql


    【解决方案1】:

    确保数据库使用 UTF-8(正如您所说的那样)并且 PHP 脚本的内部编码设置为 UTF-8,您可以使用 iconv_set_encoding 实现这一点。如果您从 HTTP 请求中读取数据,这应该是您所需要的,只要该请求正确标记自己的编码即可。

    【讨论】:

      【解决方案2】:

      看起来输入数据采用 UTF-8 格式,但 DB 表的字符集/排序规则 - ASCII。我建议到处都有 UTF-8。

      【讨论】:

        【解决方案3】:

        在保存到 MySQL 之前你需要实现的是:

        http://php.net/manual/en/function.htmlentities.php

        查看这些不同的线程以获取更多信息

        我觉得不可思议的是,这个问题在过去 24 小时内收到 -2 没有任何 cmets。

        来自发布的问题:

        我正在使用 PHP 脚本进行解析,并将解析后的数据保存到我的 MySQL 数据库中。

        我认为是我的 PHP 服务器正在更改字母。我该如何解决这个问题?谢谢!

        到目前为止发布的答案与MySQL的编码和设置有关。问这个问题的人已经明确表示可以手动插入特殊字符,没有问题:

        我的数据库可以使用那种字符,因为当我手动输入它时它工作正常

        我的回答是帮助他将字符转换为 html 实体,这将绕过他在 RSS 提要中遇到的问题并回答发布的问题。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2010-09-18
          • 2011-01-30
          • 2017-06-16
          • 1970-01-01
          • 2014-07-21
          • 1970-01-01
          相关资源
          最近更新 更多