我需要一些帮助来理解utf8数据在数据库中存储时应该如何看待。当存储在数据库中时,utf8数据应该如何显示?
我正在使用mysql和php,数据库设置为utf8,列“p_name”上的排序规则设置为“utf8_unicode_ci”。
当我通过这个功能插入I它传递数据
function convert_charset($in_str)
{
$cur_encoding = mb_detect_encoding($in_str) ;
if($cur_encoding == "UTF-8" && mb_check_encoding($in_str,"UTF-8"))
return $in_str;
else
return utf8_encode($in_str);
}
然后将其插入到数据库中。当我读出php中的数据并将其显示在浏览器中时,我在页面中使用utf8,数据显示正确,但是我怀疑可能是错误的。
以法语单词éditez
这是它应该看起来。然而在我的数据库里面,当我看着它时,同一个字被存储为éditez
。这是正确的吗?这是如何mysql应该存储这个词,或者我有一些设置错误?
这里是我已经设置已经:
- php.ini文件 - >设置为UTF-8
- 数据库 - >设置为utf8
- 表列 - >设置为utf8_unicode_ci
- html页面 - >设置为utf8。
尝试在my.ini中添加'default-character-set = utf8',然后重新添加数据。 – 2010-06-24 20:13:02
如何从数据库中检索数据? – Gumbo 2010-06-24 20:13:35
看来你试图在不理解utf-8的东西上显示utf-8,那么你如何查看这些数据呢? – nos 2010-06-24 20:16:30