比如 SELECT CHAR_LENGTH('章1');返回4,我想他返回2,我才能判断,有什么办法吗?我的字符集全部是utf8

解决方案 »

  1.   

    在UTF8下
    SELECT CHAR_LENGTH('章1');
    结果应是2show variables like 'char%';
      

  2.   

    set names 'gbk';然后再试。
     SELECT CHAR_LENGTH('章1');
      

  3.   

    mysql> SELECT CHAR_LENGTH('章1');
    +--------------------+
    | CHAR_LENGTH('章1') |
    +--------------------+
    |                  2 |
    +--------------------+
    1 row in set (0.05 sec)mysql> show variables like 'char%';
    +--------------------------+--------------------------+
    | Variable_name            | Value                    |
    +--------------------------+--------------------------+
    | character_set_client     | gbk                      |
    | character_set_connection | gbk                      |
    | character_set_database   | gbk                      |
    | character_set_filesystem | binary                   |
    | character_set_results    | gbk                      |
    | character_set_server     | gbk                      |
    | character_set_system     | utf8                     |
      

  4.   

    看一下字符集
    show variables like 'char%';
    select char_length('章1');
      

  5.   


    SET names utf8;
    SELECT CHAR_LENGTH('章1');谢谢,这样倒是好了,但是怎么设置永远为UTF8,让SET names utf8永远生效,不要每次都要写SET names utf8,毕竟query一下也很耗资源
      

  6.   

    MY.INI
    [mysql]default-character-set=utf8