繁体   English   中英

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

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM