为什么MySQL utf-8 中文是占3个字节,但是我设置varchar3,可以存3个汉字呢?

解决方案 »

  1.   

    MySql 5.0 以上的版本:1、一个汉字占多少长度与编码有关:
    UTF-8:一个汉字 = 3个字节,英文是一个字节
    GBK: 一个汉字 = 2个字节,英文是一个字节
    2、varchar(n) 表示n个字符,无论汉字和英文,MySql都能存入 n 个字符,仅实际字节长度有所区别。
      

  2.   

    varchar N代表的字符数  不是字节数
      

  3.   

    那么varchar N代表的字符数  不是字节数   ,那么我是不是就不用考虑字节的概念了呢?
      

  4.   

    varchar 3代表字符数,不是字节数
      

  5.   

    sql server中varchar(n)代表的才是字节数是的,这个字段最多存多少个字符就用varchar多少就行了。sql server的varchar才需要考虑字节。sql server的varchar(2)只能存一个汉字,因为一个汉字占两个字节。而varchar(2)只能存两个字节。mysql就不用考虑这个问题了