2010-06-24 28 views
0

我需要一些帮助来理解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应该存储这个词,或者我有一些设置错误?

这里是我已经设置已经:

  1. php.ini文件 - >设置为UTF-8
  2. 数据库 - >设置为utf8
  3. 表列 - >设置为utf8_unicode_ci
  4. html页面 - >设置为utf8。
+0

尝试在my.ini中添加'default-character-set = utf8',然后重新添加数据。 – 2010-06-24 20:13:02

+1

如何从数据库中检索数据? – Gumbo 2010-06-24 20:13:35

+1

看来你试图在不理解utf-8的东西上显示utf-8,那么你如何查看这些数据呢? – nos 2010-06-24 20:16:30

回答

3

尝试之后你的数据库连接设置功能

mysql_query('SET NAMES "utf8"');

+0

伟大的这是做到了。谢谢一堆! – Ronedog 2010-06-24 20:55:50

0

您是否尝试过你的ConnectionString设置为UTF-8,以及此查询?

Server=myServerAddress;Database=myDataBase;Uid=myUsername;Pwd=myPassword; CharSet=UTF8; 
相关问题