网上查询了一番,还是满头雾水。
GB2312是简体字,有很多字没包含进来;
GBK是包含了繁体字和简体字,
UTF8包含所有繁体字,简体字和外文,
Big5只包含繁体字。我的网站面向中文用户,但肯定要支持繁体字和少见字,
那只能选GBK或UTF8了,GBK显然比UTF8省空间。到底该怎么选呢?依据什么?
还有,我的MySql安装时已经默认为GB2312了,
数据库和表都已经创建完毕,部分还有了原始数据。
要怎么设置,才能更好的支持繁体字和少见字?又不影响之前的数据?
MySql支持对数据库,表,甚至字段单独设置字符集,那不是很麻烦?谢谢。

解决方案 »

  1.   

    不管用什么字符集,永远傻叫“Data too long for column”。
    MySql对中文的支持,真是不敢恭维。
    varchar(30), 我只输入一个"埇" 字,你也说too long,要不要脸?
    用latin1或gb2312单字节还情有可原,我都改成gbk或utf8了,还叫。
    不但database改了, table改了,collumn改了,还继续叫。
    彻底无语。
    难道MySql对少用字的自动化识别支持就那么难?
      

  2.   

    实在不好意思
      没用过MySql
    只能帮你顶下~~
      

  3.   

    我自己总结一下MySql的数据集问题吧。1.选择字符集
      1)如果只是面对国内用户,使用gbk就够用了,它是gb2312的扩展。
         它的好处是,兼容gb2312,支持更多汉字,包括繁体字,
         同时因为它使用两字节编码,比utf8节约空间和带宽,因utf8汉字用三四个字节;
      2)如果考虑国际化和多国语言兼容,或者对性能空间没过多要求,最好使用utf8,
        它是事实上的国际标准.
      
       结论:国内用GBK足够,通用化标准化用utf8.2.MySql字符集的设置(以gbk为例)
      (1)在安装时,就可以选择gbk,以后所有默认字符集都是gbk;
      (2)如果已经安装了,要修改,在Win下可以找到my.ini文件,
        方式:开始->控制面板->管理工具->服务 ,找到MyQsql,右键属性,根据路径找到my.ini,
        打开并修改:
        default-character-set=gbk
        然后同样在服务页面重启MySql即可。此后新建的dataBase 和table,将默认为gbk  (3)典型语句    建立数据库:
          CREATE DATABASE IF NOT EXISTS myDB default charset gbk COLLATE gbk_chinese_ci;    建立数据库表:
          create table MyTable (...) type=myisam default charset gbk;    修改数据库字符集
            alter table MyTable charset=GBK;    查看字符集语句:
             SHOW character set;
            SHOW VARIABLES LIKE 'character%';
            SHOW VARIABLES LIKE 'collation_%';
       
    3.除了默认的字符集,可以针对每一个数据库,每一个表,每一个字段指定字符集。方法略。4.在MySql Command Line Client执行指令时,
       必须保证环境跟目标数据库表的字符集一致,否则输入的数据或查询结果都不正确。
       如果数据库表是gbk,则在执行指令前,用以下指令指定:set names gbk;
       如果都采用了默认的设置,就不必使用该语句。以上。注:Data too long for column用gbk搞定了,
      设置为utf8还是不行,可能是某个地方没设成utf8)