我正在浏览一些西班牙博客的提要并将它们保存在数据库中。例如,单词: Diseño!
,我可以在获取提要的脚本中正确看到它,但是当它保存在数据库中时,它会保存为Diseñó!
. 我的数据库设置为 utf8 。我想我已经关注了每一个看起来像这样但没有解决的问题。我已将我的 html 中的字符集从 utf8 更改为 iso-8859,但我仍然可以在 html 中正确看到它,但一旦它保存到数据库中就无法看到。有人有解决方案吗?谢谢!
问问题
1710 次
3 回答
0
你在用SimplePie_Cache_MySQL
吗?它似乎有一个错误,它没有设置数据库连接的编码。这意味着即使数据已经在 utf8 中,连接也会将数据从 latin1(默认值)静默编码为 utf8。
要解决此问题,请添加encoding=utf8
到中的连接参数SimplePie_Cache_MySQL.php
。
您还有另一个问题:当您稍后读取数据库时,您没有将页面编码设置为 utf-8。这意味着正确编码的数据显示为已修改。
更新:仔细看,似乎SimplePie_Cache_MySQL
还可以,问题肯定出在其他地方。
于 2012-10-18T05:55:37.800 回答
0
猜测一下,是“Diseño!”的来源页面。可能是用 iso-8859-1 或 windows-1252 编码的,并且它没有任何转换就存储在您的数据库中。
如果是这种情况,您需要使用类似http://php.net/manual/en/function.mb-convert-encoding.php的方式将字符串从它所在的编码转换为 utf-8 。
于 2012-10-18T03:38:45.690 回答
-1
您应该在建立与数据库的连接之前设置字符编码。
你可以使用这个:
mysql_set_charset( 'utf-8' );
您也可以在 php.net 中检查这一点,并按照推荐的链接获取 mysqli 或 pdo 等替代方案。
再见
于 2012-10-18T06:12:47.303 回答