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;
/*省略插入中文的代码 */
在精华区的乱码合集里有这么一个帖子,跟上述情况一样。
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;
/*省略插入中文的代码 */
解决方案 »
- mysql 如何修复INNODB的表
- 关于ACCESS链接MYSQL表后,主键的问题
- mysql不能删除数据表
- 设计一个备份系统,我的想法和问题 请大家给指点
- 咨询一下 mysql的myisam和innodb引擎如何处理多用户对某一数据的同时操作?
- 怎样建一个库,建一个表!!现在只有命令窗口!!有没的可视话的??
- 我在数据库里先取出6条,然后取出其它6条,结果后面显示出其余所有信息!help me!
- 以下sqlserver语句转换成mysql语句应该怎么写,求大神解答
- 怎样多台电脑访问一个数据库的问题
- mysql一个排序问题
- group by 两个条件按的问题
- 关于mysql 新建表出现 error 1064(42000) 的一些疑问?
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
SET NAMES 'charset_name'SET CHARACTER SET gbk
SET NAMES 'gbk'
试试
在每个表后设置ENGINE=InnoDB DEFAULT CHARSET=gbk; 您说的字符集应该在哪里设置?
我是个mysql的菜鸟,以前用mysql经常出问题,但是现在又不得不用了。再次感谢您的回答。
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;
导出后在文本文件中显示的内容,但是我看不懂。这些导出后的内容我没有做过更改。
SET NAMES 'utf8'
试试
用word打开后首先让选择编码,我选择UTF-8后 出现无法执行语言识别的提示,点击确定后依然可以打开,但是无乱码。
(WORD我用的OFFICE)
ps:谢谢您的回答,虽然可用分不多,回头再加点。。虽然你不在意,但毕竟是我的心意 o(∩_∩)o...
,用WINRAR压缩,我测试一下
在WORD2000中选择UFF-8打开,没有乱码
请问您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 '锘?
倒入到另一个MYSQL 中什么意思?? 乱码跟这个错误有关系么?
开始 -> 运行 -> 输入CMD
D:
cd mysql\bin
mysql -u root -p123456 test <d:\a.sql
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了。
我真是要崩溃了。
SET CHARACTER SET utf8;
SET NAMES 'utf8';
在SQLYOG中导入执行语句,在SQLYOG中看到插入后的结果是中文汉字,没有乱码。
但是用过运行CMD-->进入数据库-->检索表信息,依然是?????
我让这个乱码困惑了3天了。一直没有眉目。。
我在java程序中直接读出来,看看什么结果。
运行
SET CHARACTER SET utf8;
SET NAMES 'utf8';
这两句再看看结果
select @@character_set_results
看看结果
我通过java程序将数据取出来,结果依然是è?…??§???????‘?- -#
SET CHARACTER SET utf8;
SET NAMES 'utf8';
设置字符集为UTF8,才能正确读出中文
我都愁死了,问题是,我如何在用java读出来的时候正确显示中文呢?另外,我在CMD中即使是输入
SET CHARACTER SET utf8;
SET NAMES 'utf8';
这两句,读出来依然不是正常的中文,而是 鏁版嵁搴撲紭鍖?
咋办?
SET CHARACTER SET utf8;
SET NAMES 'utf8'; select @@character_set_results ;
结果是什么?
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)
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
结果是什么?
--------------
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
--------------
Server characterset: latin1
Db characterset: latin1
与
Client characterset: utf8
Conn. characterset: utf8
的区别了吗?set character_set_server=utf8
set character_set_database =utf8