Php 西班牙语字符未正确保存在数据库中

Php 西班牙语字符未正确保存在数据库中,php,mysql,database,character-encoding,simplepie,Php,Mysql,Database,Character Encoding,Simplepie,我正在浏览一些西班牙语博客的提要,并将它们保存在数据库中。例如,单词Diseño,我可以在获取提要的脚本中正确地看到它,但当它保存在数据库中时,它会像Diseñó一样保存。我的数据库设置为utf8。我想我已经关注了每一个看起来像这样的问题,但没有解决它。我已经将html中的字符集从utf8更改为iso-8859,但是我仍然可以在html中正确地看到它,但不会将它保存到数据库中。有人有办法吗?谢谢 猜猜看,这一页是疾病的源头!很可能是用iso-8859-1或windows-1252编码的,它存

我正在浏览一些西班牙语博客的提要,并将它们保存在数据库中。例如,单词Diseño,我可以在获取提要的脚本中正确地看到它,但当它保存在数据库中时,它会像Diseñó一样保存。我的数据库设置为utf8。我想我已经关注了每一个看起来像这样的问题,但没有解决它。我已经将html中的字符集从utf8更改为iso-8859,但是我仍然可以在html中正确地看到它,但不会将它保存到数据库中。有人有办法吗?谢谢

猜猜看,这一页是疾病的源头!很可能是用iso-8859-1或windows-1252编码的,它存储在您的数据库中,不需要任何转换

如果是这种情况,您需要使用类似于的方法将字符串从其编码转换为utf-8。

您使用的是SimplePie\u Cache\u MySQL吗?它似乎有一个bug,它没有为数据库连接设置编码。这意味着即使数据已经在utf8中,连接也会将数据从默认值latin1静默编码为utf8

要解决此问题,请将encoding=utf8添加到SimplePie\u Cache\u MySQL.php中的连接参数中

您还有另一个问题:当您稍后读取数据库时,您没有将页面编码设置为utf-8。这意味着正确编码的数据显示为蒙格


更新:仔细看,SimplePie\u Cache\u MySQL似乎还可以,问题一定在别处。

在建立到数据库的连接之前,您应该设置字符编码

您可以使用以下选项:

mysql_set_charset( 'utf-8' );
您还可以查看并遵循mysqli或pdo等备选方案的推荐链接


拜拜

如果源文档是用utf-8编码的,而内容实际上是用utf-8编码的,那么页面的编码频率比您想象的要高,并且您的数据库编码是utf-8,那么在这一过程中会有一些东西在修改字符串。在这种情况下,我们需要查看您的代码,至少是相关部分,以便能够帮助解决问题。我只是使用simplepie来获取提要,然后我将它们提交到数据库,没什么特别的。如果你愿意,我可以粘贴代码,但这几乎是simplepie的演示。你可以链接到一个有问题的博客提要吗?例如,如果你给出的特定URL标题中没有显示波浪号,我看不到任何问题,无论是在提要XML中,还是直接使用simplepie演示。