当存储在数据库中时,utf8数据应该如何显示?

时间:2010-06-24 20:09:08

标签: mysql encoding utf-8

我需要一些帮助来理解存储在数据库中时utf8数据的外观。

我正在使用mysql和php,数据库设置为utf8,列“p_name”上的排序规则设置为“utf8_unicode_ci”。

当我插入数据时,我将其传递给此函数

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,并且数据显示正确,但是我怀疑某些内容可能是错误的。

采取FRENCH字éditez这就是它应该看起来的样子。但是在我查看数据库时,同一个单词存储为éditez。这是正确的吗?这是mysql应该如何存储该单词,还是我设置错误?

这是我已经设定的内容:

  1. php.ini - >设置为utf8
  2. 数据库 - >设置为utf8
  3. 表格列 - >设置为utf8_unicode_ci
  4. html pages - >设置为utf8。

2 个答案:

答案 0 :(得分:3)

在数据库连接设置功能

之后立即尝试此查询

mysql_query('SET NAMES "utf8"');

答案 1 :(得分:0)

您是否尝试过将您的连接字符串设置为UTF8?

Server=myServerAddress;Database=myDataBase;Uid=myUsername;Pwd=myPassword; CharSet=UTF8;