TXT中文倒入mysql后,然后在mysql里(在运行里输入cmd)执行查询语句后出现?????的乱码。
在精华区的乱码合集里有这么一个帖子,跟上述情况一样。
http://topic.csdn.net/u/20070925/13/291fff37-00ca-44a1-af92-bd79141f4f00.html?seed=413436099
您给出解决方案是这样的:

在MY.INI里添加: 
[mysql] 
default-character-set=gb2312 
[mysqld] 
default-character-set=gb2312 
然后重新启动MYSQL服务。 进入数据库 
alter   database   charset   =   gb2312; 
在导入数据库的脚本的前面写上   set   names   gb2312; 

数据库在服务器上,无法更改MY.INI,请问这时如何解决?
我在数据库输入show   variables   like   '%char% ' 结果如下:
mysql>show   variables   like   '%char% ';
Empty set (0.00 sec)

我也很纳闷为啥会出现这个结果。希望您给出解决方案。谢谢。以下是我倒入到MYSQL的部分代码。create database if not exists `b2b`;USE `b2b`;DROP TABLE IF EXISTS `bpmdefinition`;CREATE TABLE `bpmdefinition` (
  `TRADE_TYPE_CODE` char(4) NOT NULL,
  `BPM_ID` char(4) NOT NULL,
  `NODE_ID` char(20) NOT NULL,
  ) ENGINE=InnoDB DEFAULT CHARSET=gbk;
/*省略插入中文的代码 */ 

解决方案 »

  1.   

    系统配置信息:

    mysql> \s
    --------------
    mysql  Ver 14.12 Distrib 5.0.18, for Win32 (ia32)Connection id:          5
    Current database:       b2b
    Current user:           root@localhost
    SSL:                    Not in use
    Using delimiter:        ;
    Server version:         5.0.18-nt
    Protocol version:       10
    Connection:             localhost via TCP/IP
    Server characterset:    latin1
    Db     characterset:    latin1
    Client characterset:    latin1
    Conn.  characterset:    latin1
    TCP port:               3306
    Uptime:                 1 hour 29 min 46 secThreads: 1  Questions: 6975  Slow queries: 0  Opens: 208  Flush tables: 1  Open
    tables: 0  Queries per second avg: 1.295
      

  2.   

    SET CHARACTER SET charset_name
    SET NAMES 'charset_name'SET CHARACTER SET gbk
    SET NAMES 'gbk'
    试试
      

  3.   

    TXT文件是从MYSQL导入的?字符集设置是什么?
      

  4.   

    是通过source倒入的。
    在每个表后设置ENGINE=InnoDB DEFAULT CHARSET=gbk; 您说的字符集应该在哪里设置? 
    我是个mysql的菜鸟,以前用mysql经常出问题,但是现在又不得不用了。再次感谢您的回答。
      

  5.   

    TXT文件是从MYSQL导出的?原来MYSQL字符集设置是什么?
      

  6.   

    嗯。。是的。。您看下这个。/*
    SQLyog Enterprise - MySQL GUI v6.05
    Host - 5.0.41-community-nt : Database - b2b
    *********************************************************************
    Server version : 5.0.41-community-nt
    */
    /*!40101 SET NAMES utf8 */;/*!40101 SET SQL_MODE=''*/;create database if not exists `b2b`;USE `b2b`;/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;/*Table structure for table `bpmdefinition` */DROP TABLE IF EXISTS `bpmdefinition`;CREATE TABLE `bpmdefinition` (
      `TRADE_TYPE_CODE` char(4) NOT NULL,
      `BPM_ID` char(4) NOT NULL,
      `NODE_ID` char(20) NOT NULL,
      `NODE_TYPE` char(1) default NULL,
      `REMARK` varchar(100) default NULL
    ) ENGINE=InnoDB DEFAULT CHARSET=gbk;
    导出后在文本文件中显示的内容,但是我看不懂。这些导出后的内容我没有做过更改。
      

  7.   

    SET CHARACTER SET utf8
    SET NAMES 'utf8'
    试试
      

  8.   

    用写字板打开此TXT文件看看,是否是乱码?如是,用WORD打开,如为UFT8格式,有提示
      

  9.   

    用写字板打开无提示,无乱码。 
    用word打开后首先让选择编码,我选择UTF-8后 出现无法执行语言识别的提示,点击确定后依然可以打开,但是无乱码。 
    (WORD我用的OFFICE)
    ps:谢谢您的回答,虽然可用分不多,回头再加点。。虽然你不在意,但毕竟是我的心意 o(∩_∩)o... 
      

  10.   

    哦。上面想说我的是。word我用的是0FFICE2007
      

  11.   

    上传你的txt到www.access911.net/csdn
    ,用WINRAR压缩,我测试一下
      

  12.   

    已经上传。地址 http://www.access911.net/csdn/filedescription.asp?mdb=2008-10-14&id=30&mode=3原文件有2M多,我摘出了一点。
      

  13.   

    我用的也是SQLYOG,导入你的TXT文件,没有乱码,字符集设置为UTF8,用写字板、记事本均可以打开
    在WORD2000中选择UFF-8打开,没有乱码
      

  14.   

    这下囧了。 
    请问您MYSQL 安装以后有没有对mysql的客户端做过更改??
    我在导入时第一行就有错误。内容如下:
    mysql> source e:b2b.sql;
    ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that
    corresponds to your MySQL server version for the right syntax to use near '锘?
      

  15.   

    你要将此TXT文件导入到另一个MYSQL中?
      

  16.   

    我就是在该数据库存在的情况下,用source倒入。 
     
    倒入到另一个MYSQL 中什么意思?? 乱码跟这个错误有关系么?
      

  17.   

    这样试试:
    开始 -> 运行 -> 输入CMD
    D:
    cd mysql\bin
    mysql -u root -p123456 test <d:\a.sql 
      

  18.   


    D:\Program\Study\MySQL Server 5.0>mysql -u root -p0 test <e:\b2b.sql
    ERROR 1064 (42000) at line 1: You have an error in your SQL syntax; check the ma
    nual that corresponds to your MySQL server version for the right syntax to use n
    ear '锘?
    /*!40101 SET NAMES utf8 */' at line 1依然是这个错误。 test的地方我也改了,把数据库名字改成test了。
    我真是要崩溃了。
      

  19.   

    用SQLYOG直接导入试试,SQLYOG可以连接MYSQL吧?
      

  20.   

    进入SQLYOG,运行
    SET CHARACTER SET utf8;
    SET NAMES 'utf8'; 
      

  21.   

    可以连接。这个东西。还还是第一次用。刚刚下的。
    在SQLYOG中导入执行语句,在SQLYOG中看到插入后的结果是中文汉字,没有乱码。
    但是用过运行CMD-->进入数据库-->检索表信息,依然是????? 
    我让这个乱码困惑了3天了。一直没有眉目。。
    我在java程序中直接读出来,看看什么结果。
      

  22.   

    CMD-->进入数据库后,使用的是默认的字符集设置,
    运行
    SET CHARACTER SET utf8;
    SET NAMES 'utf8'; 
    这两句再看看结果
      

  23.   

    在SQLYOG中运行
    select @@character_set_results
    看看结果
      

  24.   

    结果是utf8  
    我通过java程序将数据取出来,结果依然是è?…??§???????‘?- -#
      

  25.   

    呵呵,果然是UTF8,在程序中运行
    SET CHARACTER SET utf8;
    SET NAMES 'utf8'; 
    设置字符集为UTF8,才能正确读出中文
      

  26.   

    大哥,你还 呵呵。 
    我都愁死了,问题是,我如何在用java读出来的时候正确显示中文呢?另外,我在CMD中即使是输入
    SET CHARACTER SET utf8; 
    SET NAMES 'utf8'; 
    这两句,读出来依然不是正常的中文,而是 鏁版嵁搴撲紭鍖?
    咋办?
      

  27.   

    在CMD中启动MYSQL,
    SET CHARACTER SET utf8;
    SET NAMES 'utf8'; select @@character_set_results ;
    结果是什么?
      

  28.   

    还是uft8,但是即便是这样,读出来数据依然是乱码。mysql> use b2b;
    Database changed
    mysql> SET CHARACTER SET utf8;
    Query OK, 0 rows affected (0.00 sec)mysql> SET NAMES 'utf8';
    Query OK, 0 rows affected (0.00 sec)mysql> select @@character_set_results ;
    +-------------------------+
    | @@character_set_results |
    +-------------------------+
    | utf8                    |
    +-------------------------+
    1 row in set (0.00 sec)
      

  29.   

    在MYSQL命令行中,即
    mysql> use b2b;
    Database changed
    mysql> SET CHARACTER SET utf8;
    Query OK, 0 rows affected (0.00 sec)mysql> SET NAMES 'utf8';
    Query OK, 0 rows affected (0.00 sec)mysql> select @@character_set_results ;
    +-------------------------+
    | @@character_set_results |
    +-------------------------+
    | utf8                    |
    +-------------------------+
    1 row in set (0.00 sec)SELECT * FROM TABLE
    结果是什么?
      

  30.   

     select 的结果是 ?鈥??????????系统的配置现在是:mysql> \s
    --------------
    mysql  Ver 14.12 Distrib 5.0.18, for Win32 (ia32)Connection id:          9
    Current database:       test
    Current user:           root@localhost
    SSL:                    Not in use
    Using delimiter:        ;
    Server version:         5.0.18-nt
    Protocol version:       10
    Connection:             localhost via TCP/IP
    Server characterset:    latin1
    Db     characterset:    latin1
    Client characterset:    utf8
    Conn.  characterset:    utf8
    TCP port:               3306
    Uptime:                 2 hours 5 min 24 secThreads: 11  Questions: 655  Slow queries: 0  Opens: 1  Flush tables: 1  Open ta
    bles: 1  Queries per second avg: 0.087
    --------------
      

  31.   

    看到 
    Server characterset:    latin1
    Db     characterset:    latin1

    Client characterset:    utf8
    Conn.  characterset:    utf8
    的区别了吗?set character_set_server=utf8
    set character_set_database =utf8
      

  32.   

    这是贞龙的CMS数据库,我下午弄了一下午,导入时候,老是提示错误,郁闷死,你现在用的是什么版本的mysql。谢谢