[英]Spanish characters not saving in database correctly
我正在浏览一些西班牙博客供稿,并将它们保存在数据库中。 例如,单词: Diseño!
,我可以在获取提要的脚本中正确看到它,但是当它保存在数据库中时,它会像Diseñó!
一样保存Diseñó!
。 我的数据库设置为utf8。 我认为我已经关注了每个看起来像这样的问题,但没有任何解决办法。 我已经将html中的字符集从utf8更改为iso-8859,但仍然可以在html中正确看到它,但是一旦将其保存到数据库中就不能了。 有人有解决办法吗? 谢谢!
猜测是“Diseño!”的来源页面。 可能是用iso-8859-1或Windows-1252编码的,没有任何转换就存储在数据库中。
在这种情况下,您需要使用http://php.net/manual/en/function.mb-convert-encoding.php之类的字符串将字符串从其编码转换为utf-8。
您正在使用SimplePie_Cache_MySQL
吗? 似乎有一个错误,它没有设置数据库连接的编码。 这意味着即使数据已经在utf8中,该连接也将数据从latin1(默认值)静默编码到utf8。
若要解决此问题,请在SimplePie_Cache_MySQL.php
的连接参数中添加encoding=utf8
。
您还有另一个问题:稍后读取数据库时,您没有将页面编码设置为utf-8。 这意味着正确编码的数据显示为杂音。
更新 :仔细观察,似乎SimplePie_Cache_MySQL
可以,问题必须在其他地方。
建立与数据库的连接之前,应设置字符编码。
您可以使用此:
mysql_set_charset( 'utf-8' );
您也可以在php.net中进行检查,并按照推荐的链接查找mysqli或pdo之类的替代方法。
再见
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.