insert into table1 select * from table2
----------------
table2中这样的数据:
┽╁變∷態╀╀
(_少①點ㄣ壞插入到table1中之后变成:
┽╁
(_少①character set;gb2312
collation:gb2312_bin如果两个表的
collation:gb2312_chinese_ci
不会有问题.
应该不是截断的问题..
字符足够长

解决方案 »

  1.   

    show variables like 'char%';
    show variables like 'coll%';show create table table1;
    show create table table2;贴出来看一下字符集设置。
      

  2.   

    应该是你的字符集设置不对┽╁變∷態╀╀
    (_少①點ㄣ壞这两个字符串根本是不 gb2312 的。gb2312是中国大陆简体字符集。
      

  3.   

    CREATE TABLE `cq_dyna_rank_rec` (
      `id` int(4) unsigned NOT NULL auto_increment,
      `type` int(4) unsigned NOT NULL default '0',
      `Value1` bigint(8) NOT NULL default '0',
      `value2` bigint(8) unsigned default '0',
      `Value3` int(4) NOT NULL default '0',
      `Value4` int(4) NOT NULL default '0',
      `Obj_id` int(4) NOT NULL default '0',
      `datastr` varchar(100) NOT NULL default '',
      `User_id` int(4) unsigned NOT NULL default '0',
      `User_name` varchar(100) NOT NULL default '',
      PRIMARY KEY  (`id`),
      UNIQUE KEY `id` (`id`)
    ) ENGINE=MyISAM DEFAULT CHARSET=gb2312CREATE TABLE `st_tgpm_user_temp` (
      `id` int(11) unsigned NOT NULL auto_increment,
      `userid` int(11) unsigned default NULL,
      `name` varchar(50) character set gb2312 collate gb2312_bin default NULL,
      `ftime` int(11) unsigned default NULL,
      `taskcount` int(11) unsigned default NULL,
      PRIMARY KEY  (`id`),
      UNIQUE KEY `id` (`id`)
    ) ENGINE=MyISAM DEFAULT CHARSET=gb2312
    collation_connection  gb2312_chinese_ci
    collation_database    gb2312_chinese_ci
    collation_server      gb2312_chinese_ci
    Variable_name               Value
    character_set_client         gb2312
    character_set_connection gb2312
    character_set_database         gb2312
    character_set_results         gb2312
    character_set_server         gb2312
    character_set_system         utf8
    character_sets_dir         D:\Program Files\MySQL\MySQL Server 4.1\share\charsets/
    注:出问题的是
    name------->user_name
      

  4.   

    character_set_database修改为UTF8试试,数据在UTF8下重新插入
      

  5.   

    估计你的程序是以UTF格式写入数据库表听。你用这句来看一下这个 '┽╁變∷態╀╀'在表中放的是什么?
    select hex(name) from st_tgpm_user_temp;
      

  6.   

    你用这句来看一下这个 '┽╁變∷態╀╀'在表中放的是什么? 
    select hex(name) from st_tgpm_user_temp;
    A9E1A9E5D783A1CB9142A9E4A9E4
    ----------------------------------得出结果,是gb2312的
      

  7.   

    通过正当的途径,gb2312确实存不了这些繁体字.可能这张表是从低版本升级上来,或通过文件拷贝而来.现在最好的办法,是将表的字符集设为GBK或UTF8