我的问题可能比较长,请大家耐心看一下。问题一我已经设置了
character_set_server
character_set_database
character_set_client
character_set_connection
character_set_result
character_set_system
都为utf8,而且把
collation_connection
collation_server
collation_database
也都设置成utf8_general_ci然后建立了一张表
(代码为create table mm(name varchar(10) not null)engine=myisam default charset=gb2312)
然后在mysql command line clien输入:set names gb2312;
insert into mm values("我");然后正常输出,没有乱码。然后我在phpmyadmin输入数据,却输入不了中文,错误提示是"data too long for...."。我将mm表的name字段的整理设为utf8(原先是gb2312),就可以输入中文了,并且在phpmyadmin显示正常,但我回
到mysql command line client却看见显示乱码。我为这问题已伤透脑筋,就是在mysql command line client 输入中文正常,显示也正常,但在phpmyadmin就显示乱码,
而且不能输入中文。而如果phpmyadmin能输入中文,并且显示正常,在mysql command line client 就显示乱码。请各位高手帮帮忙问题二我的一张表里有一个text 类型的字段,就是要输入很长的一篇文章,我想用load data infile语句从外部txt文档导入,
但不知道命令行如何写,就是那篇文章要原样导入,分行,分段,空格不要变。请高手帮我写一下,谢谢啦.

解决方案 »

  1.   

    你索性设置的时候把编码都设置一样的,然后在你输出的的时候你可以改编码,set names ...;建表的时候就不要再带上什么编码,一句话,尽量保持编码一致,不然会产生编码冲突的!“错误提示是"data too long for...."。”,没有看懂意思吗?
      

  2.   

    我已经把所有的编码都设置一样了。都设为utf8之所以在建表时设置为gb2312,是因为不这样做是输入不了中文,会显示"data too long..."
      

  3.   

    命令行下中文会出现?,英文不会,你全用英文就没问题了。如果不行,放弃命令行使用phpMyAdmin吧。
      

  4.   

    我已经把所有的编码都设置一样了。都设为utf8
    建表时设置为utf8.不通过命令行输入,建立一sql文件,文件格式为utf8,通过执行这一命令文件.对数据库进行追加.
    -------------------------------------------------------------------------------------
    下面是在数据表中加入一条记录写法,已成功加入.
    use ses_db;
    set names utf8;
    insert into Question_math(
    recno ,
    UserId ,
    SubjectId ,
    Knowledge , 
    Type ,
    Question ,
    Answer ,
    Degree ,
    Putdate
    ) values(1,'Elim',1,'111','1',
    '<object_1><subject_1>若关于方程3x+5=m与方程x-2m=5有相同的解,则x的值是?</subject_1>
    <question>
    <SimpleChoice>
    <Choice><text>(A)3</text>
    </Choice>
    <Choice><text>(B)-3</text>
    </Choice>
    <Choice> 
    <text>(C)4</text>
    </Choice>
    <Choice><text>(D)-4</text>
    </Choice>
    </SimpleChoice>
    </question>
    </object_1>
    ','B','2','2009-04-19 20:00:00');