故障码:
mysql> insert into t1(name,sex,age,address) values('张三','男',11,'沙河');ERROR 1366 (HY000): Incorrect string value: 'xD5xC5xC8xFD' for column 'name' at row 1
该故障是由于中文编码不一致导致的数据插入失败所致。
一般mysql数据库在插入中文信息时出错的情况无外乎就是中文编码不一致所致。而目前支持中文的编码格式基本上有utf-8,gbk,gb2312三种,而数据库,jsp页面,控制台,Java代码等等的地方要尽可能的编码一致,否则可能会带来不必要的麻烦。
通过查找,我发现我的数据库编码格式是:utf-8,如下所示:
[mysql]default-character-set=utf8该信息在mysql的安装目录下的my.ini文件中,以我的为例,就是:C:Program FilesMySQLMySQL Server 5.5下的my.ini。
而我们的控制台的编码格式是:gbk,如下图所示:
控制台的打开方式是【开始】->【运行】,在【运行】窗口中输入cmd,点击回车键即可。
由于控制台和mysql的中文编码格式不一致,这导致中文数据无法插入成功,解决办法就是将其编码格式进行统一,由于控制台的编码格式不能进行设置,所以我们只有更改数据库的编码格式了,此时我们将数据库的编码格式也改成gbk。
即,将my.ini文件中的utf-8改成gbk,代码如下:
[mysql]default-character-set=gbk此时重启mysql服务器,然后再插入中文数据,运行结果如下所示:
mysql> insert into t1(name,sex,age,address) values('张三','男',11,'沙河');Query OK, 1 row affected (0.05 sec)
cmd控制台插入mysql数据库中文信息时,插入失败的解决办法
标签:mysql 控制台
小编还为您整理了以下内容,可能对您也有帮助:
mysql中插入中文报错怎么解决?
A. 字符编码:
“使用命令行方式登陆到MySQL服务器, 建立一个数据库,数据库编码设为UTF-8。此时,如果直接在命令行窗口使用insert语句插入中文,就遇到类似 ERROR 1406 (22001): Data too long for column 'name' at row 1 错误。乍一看,是字段长度引起的问题,但是实际是字符编码的问题。可是尝试以下解决方法:
1、在Linux中,使用终端方式登陆MySQL服务器,运行以下命令:
set names utf8;
该命令将终端的字符编码设为了UTF-8。此后再插入数据库中的内容都会按照UTF-8的编码来处理。
注意:在Linux中,终端方式中直接插入中文内容,可能并不会出现1406错误,但是这时插入的数据
是按照系统的默认编码进行处理。因此对编码为UTF-8的数据库,在显示数据的地方可能会出现乱码。
2、在Windows下,命令行窗口不支持UTF-8编码,所以使用“set names utf8;”不会达到转化中文的
效果。但是这个问题还是可以解决的:
(1)使用默认编码建立数据库。这种情况下就可以直接输入中文了,但是相应的问题,就是会
失去UTF-8编码的灵活性。特别是不利于软件的国际化。
(2)放弃命令行窗口登录MySQL,使用图形化客户端。客户端工具可以MySQL的官方网站上找到。”
B. Mysql配置文件:
“在my.ini里找到sql- mode='STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'把其中 的STRICT_TRANS_TABLES,去掉,或者把sql- mode=STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION注释掉,然 后重启mysql就ok了”
mysql中插入中文报错怎么解决?
A. 字符编码:
“使用命令行方式登陆到MySQL服务器, 建立一个数据库,数据库编码设为UTF-8。此时,如果直接在命令行窗口使用insert语句插入中文,就遇到类似 ERROR 1406 (22001): Data too long for column 'name' at row 1 错误。乍一看,是字段长度引起的问题,但是实际是字符编码的问题。可是尝试以下解决方法:
1、在Linux中,使用终端方式登陆MySQL服务器,运行以下命令:
set names utf8;
该命令将终端的字符编码设为了UTF-8。此后再插入数据库中的内容都会按照UTF-8的编码来处理。
注意:在Linux中,终端方式中直接插入中文内容,可能并不会出现1406错误,但是这时插入的数据
是按照系统的默认编码进行处理。因此对编码为UTF-8的数据库,在显示数据的地方可能会出现乱码。
2、在Windows下,命令行窗口不支持UTF-8编码,所以使用“set names utf8;”不会达到转化中文的
效果。但是这个问题还是可以解决的:
(1)使用默认编码建立数据库。这种情况下就可以直接输入中文了,但是相应的问题,就是会
失去UTF-8编码的灵活性。特别是不利于软件的国际化。
(2)放弃命令行窗口登录MySQL,使用图形化客户端。客户端工具可以MySQL的官方网站上找到。”
B. Mysql配置文件:
“在my.ini里找到sql- mode='STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'把其中 的STRICT_TRANS_TABLES,去掉,或者把sql- mode=STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION注释掉,然 后重启mysql就ok了”
使用CMD向MySQL中插入汉子,却报告ERROR 1064 (42000)
在mysql的控制台,默认情况下是无法插入汉字。
你可以在mysql的控制台执行 set names gbk;
然后再插入数据看看,如果这样还不行的话,最好把sql语句放到一个文本文件中,然后在控制台中执行
source xxxx.sql;
这样应该是没有问题的
使用CMD向MySQL中插入汉子,却报告ERROR 1064 (42000)
在mysql的控制台,默认情况下是无法插入汉字。
你可以在mysql的控制台执行 set names gbk;
然后再插入数据看看,如果这样还不行的话,最好把sql语句放到一个文本文件中,然后在控制台中执行
source xxxx.sql;
这样应该是没有问题的
mysql数据库在命令提示符中无法输入中文,也显示不了中文
可能是没有加载Conime吧,在cmd下输入命令 reg add HKCU\Console /v LoadConIme /t REG_DWORD /d 1 /y 回车,然后重启cmd,按Ctrl+空格即可切换中英文输入法如果还是不行,可能就是你的电脑缺少文件了。追问没用
MYSQL中无法插入中文怎么办、。?
[mysql]
default-character-set=gbk #默认是latin1,把他改成了gbk。
# The default character set that will be used when a new schema or table is
# created and no character set is defined
default-character-set=utf8
#默认是latin1,把他改成了utf8。
使用mysql时,无法插入中文。
标签:
MYSQL中无法插入中文怎么办、。?
[mysql]
default-character-set=gbk #默认是latin1,把他改成了gbk。
# The default character set that will be used when a new schema or table is
# created and no character set is defined
default-character-set=utf8
#默认是latin1,把他改成了utf8。
使用mysql时,无法插入中文。
标签:
MySQL使用命令行连接,导入TXT数据表时,值为中文的字段无法正确插入
最近也遇到跟题主一样的问题,我用的是mysql5.6.24 zip格式,也叫免安装版。
遇到这个问题后在网上也百度了好多办法都不行,最后终于解决了。
能插入中文说明编码方式已经更改为utf8了的,不过还是可以通过如下语句可以先查看下
不能导入含中文的txt文件,但是却可以插入中文;如下
导致问题出现的原因是,你导入的txt文件编码格式并非为utf8,要通过文本编辑器将编码格式保存成utf8再导入就没有问题了。
用文本编辑器打开txt文件,选择格式为utf-8 无BOM保存。我用的是notepad++,这个比较好用,你可以自己百度。
再导入文件就没有问题了
希望对你有帮助
在cmd命令窗口中插入中文到mysql中时出错
看看你这些变量设置编码是什么再说, 你说的建表的时候设置编码跟这个没有关系的!
追问追答