ERROR 1366 (HY000): Incorrect string value: '\xB3\xA4\xC9\xB3' for column
在用以下方法之前,请先执行下面命令查看。
show variables like 'character%'; ——查看所有编码方式
show create table table_name; ——查看某个表格的编码方式
status ——查看
一、网上的解决方案很多,但是试了几个都没成功。能改的地方都改了,my.ini里两个地方[mysql]和[mysqld]都改成了gbk,又多此一举跑MySQLInstanceConfig.exe里也设置了默认字符集为gbk,还有在数据库里也使用了charset gbk来更改字符集,可无一例外中文还是插不进去。
最后在http://youshini.iteye.com/blog/1073053上又找到一个解决方案,在数据库里使用了alter table content modify author varchar(30) character set gbk;这句话之后成功插入了中文!心中那个鸡冻啊。
现在知道了,前面把my.ini或者在MySQLInstanceConfig.exe里改变了编码字符集之后只对以后创建的表起作用,对于以前创建的表要使用alter table content modify author varchar(30) character set gbk才可以插入中文,当然,嫌这样一个字段一个字段的修改太麻烦可以使用ALTER TABLE OLD_TABLE CONVERT TO CHARACTER SET charset_name [COLLATE collation_name]直接对整个表操作。
。这里把问题及解决方案贴出方便后来人!个人总结出mysql数据库要正常插入中文需要三个地方字符集一致:
1、mysql的初始化字符集(my.ini中修改)
2、某个具体的database中通过charset gbk或者\c gbk修改
3、最后这个不是必须的,只是如果在中途改了以上两个字符集才需要在此修改。把表中的字段改成和上面两种一样的字符集:通过ALTER TABLE OLD_TABLE CONVERT TO CHARACTER SET charset_name [COLLATE collation_name]修改
二、最后再附上一篇整体概述的设置mysql支持中文的文章,转于51cto.com
MySQL数据库默认编码已经是utf8了, default-character-set = utf8,可是向数据库中表中插入中文时,却老是出现 ....\xB5\xA5\xD1\xA1 for column...这样的错误,经过查阅网上类型的错误后,发现一个很奇妙的现象,接下来我们就来开始介绍。
1)、在安装数据库时就设定字符集编码为utf8的环境下
1.在当前字符集编码为:
1 Server characterset: utf8
2
3 Db characterset: utf8
4
5 Client characterset: utf8
6
7 Conn. characterset: utf8
下创建数据库:
(1)插入中文数据,操作不能成功。
(2)修改字符集编码为:
8 Server characterset: utf8
9
10 Db characterset: utf8
11
12 Client characterset: gbk
13
14 Conn. characterset: gbk
插入中文数据,显示正常。
2)、在安装数据库时就设定字符集编码为gbk的环境下
1.当前字符集编码是:
15 Server characterset: gbk
16
17 Db characterset: gbk
18
19 Client characterset: gbk
20
21 Conn. characterset: gbk
下创建数据,插入中文数据,操作正常,显示正常。
2.当前字符集编码为utf8:
22 Server characterset: gbk
23
24 Db characterset: utf8
25
26 Client characterset: utf8
27
28 Conn. characterset: utf8
3.当前字符集编码为utf8:
29 Server characterset: gbk
30
31 Db characterset: gbk
32
33 Client characterset: utf8
34
35 Conn. characterset: utf8
插入中文数据,操作不能执行。
结论:要想能向数据库正常插入中文,必须满足以下条件:
1.要把字符集设定为能支持中文的gbk或则utf8;
2.把数据库的Client Characterset和Conn. Characterset的字符集都设定为gbk;
根据上面的提示 ,我更改了:
36 SET character_set_client=gbk;
37
38 SET character_set_connection=gbk;
之后再尝试想数据库插入中文,这时没有出错,能插入可是查询出来是乱码。
最后再更改;
39 SET character_set_results=gbk;
这样之后,所有的问题都解决了,能正常插入也能正常显示了。(http://hi.baidu.com/vanadium362/item/ffa64caed7ee5eae29ce9d32)
最后各种数据编码问题:http://bbs.csdn.net/topics/190115814
ERROR 1366 (HY000): Incorrect string value: '\xB3\xA4\xC9\xB3' for column的更多相关文章
- mysql 插入中文时出现ERROR 1366 (HY000): Incorrect string value: '\xC0\xEE\xCB\xC4' for column 'usern ame' at row 1
1 环境: MySQL Server 6.0 命令行工具 2 问题 : 插入中文字符数据出现如下错误: ERROR 1366 (HY000): Incorrect string value: '\ ...
- ERROR 1366 (HY000): Incorrect string value: '\xD6\xD0\xCE\xC4' for column XXX at row 1
本错误为:该列的插入格式有误 修改该表中该列的字符集为utf-8 网上办法: )不能插入中文解决办法: 向表中插入中文然后有错误. mysql> insert into users values ...
- mysql DOS中中文乱码 ERROR 1366 (HY000): Incorrect string value: '\xC4\xEA\xBC\xB6' for column 'xxx' at row 1
问题:ERROR (HY000): Incorrect string value: 在DOS中插入或查询中文出现乱码 登入mysql,输入命令:show variables like '%char%' ...
- ERROR 1366 (HY000): Incorrect string value: '\xD5\xC5\xC8\xFD' for column 'name' at row 1
ERROR 1366 (HY000): Incorrect string value: '\xD5\xC5\xC8\xFD' for column 'name' at row 1 数据库字符集问 ...
- mysql insert中文乱码无法插入ERROR 1366 (HY000): Incorrect string value
ERROR 1366 (HY000): Incorrect string value: '\xB1\xEA\xCC\xE2\xD5\xE2...' for column 'title' at row ...
- Linux MySQl 5.7.17 MySQL ERROR 1366(HY000):Incorrect string value 解决方法
MySQL ERROR 1366(HY000):Incorrect string value,在往数据库中插入中文的时候会出现. 这也就是编码问题,网上大部分都是说设置下配置文件中的设置,而可悲的是在 ...
- Mysql插入中文时提示:ERROR 1366 (HY000): Incorrect string value: '\xE5\x8F\xB0\xE5\xBC\x8F...' fo
Mysql插入数据时提示:ERROR 1366 (HY000): Incorrect string value: ‘\xE5\x8F\xB0\xE5\xBC\x8F…’ fo 分析如下: 首先通过语句 ...
- MySQL ERROR 1366(HY000) Incorrect string value
有以下两张表: mysql> show tables; +---------------+ | Tables_in_old | +---------------+ | book | | pres ...
- ERROR 1366 (HY000): Incorrect string value: '\xE9\x83\x91\xE5\xB7\x9E' for column 'aa' at row 1 MySQL 字符集
ERROR 1366 (HY000): Incorrect string value: '\xE9\x83\x91\xE5\xB7\x9E' for column 'aa' at row 1创建表之后 ...
- ERROR 1366 (HY000): Incorrect string value:MySQL数据库、表的字符集为GBK
mysql> update userinfo set MEDIASOURCE = 'CS02-北京' where IMPORTNO = 'IMP201640613101206';ERROR 13 ...
随机推荐
- (4)获取servlet常用api
*五)与ServletAPI解耦 方式1 AddAction public String execute() throws Exception, IOException{ //获取请求对象reques ...
- h5打电话发短信写邮件怎么实现
// 一.打电话<a href="tel:0755-10086">打电话给:0755-10086</a> // 二.发短信,winphone系统无效< ...
- IDT 信息设计工具使用
IDT 大多使用于接外系统数据,也就是非SAP 系统数据库.虽然SAP BW 里有数仓概念,接外部系统的视图.集中在使用建模,query ,再通过BO来展示.可是有些我们需要直连数据库,取一两张表相对 ...
- resEdit
resEdit:一个图形界面编辑工具,它不但可以用来编写程序所图形界面(如修改图标.菜单.鼠标.版本信息等),还支持了对exe.dll等执行文件内的资源(图标.菜单.鼠标指针.位图.版本信息)等进行修 ...
- poj1191棋盘分割——区间DP
题目:http://poj.org/problem?id=1191 分析题意,可知每次要沿棋盘中的一条线把一块一分为二,取其中一块继续分割: σ最小经分析可知即为每块的xi和的平方最小: 故用区间DP ...
- shell ss命令
ss命令用来显示处于活动状态的套接字信息.ss命令可以用来获取socket统计信息,它可以显示和netstat类似的内容.但ss的优势在于它能够显示更多更详细的有关TCP和连接状态的信息,而且比net ...
- warning: conflicting types for built-in function 'puts'
warning: conflicting types for built-in function 'puts' [编译器版本] arm-linux-gcc 3.4.1 [问题描述] 在做嵌入式底层开发 ...
- 面试题: 数据库 oracle数据库 已看1 意义不大 有用
Oracle数据库面试题总结 2017年04月27日 22:41:44 阅读数:9271 1.SQL语句分类 DQL(数据查询语言)select DML(数据操作语言)insert.delete.up ...
- SVN 被防火墙阻止的解决方法
SVN 被防火墙阻止的解决方法: 1. 进入WIN7的防火墙,看到有的SVN服务是被阻止的,专用的和公用的要设置为允许被防火墙阻止的解决方法" TITLE="SVN 被防火墙阻止的 ...
- 连接带密码的access数据库
在网上找了很多都不靠谱,稀里哗啦的弄一堆连接字符串,很不优雅. 这个方法很简单: 1.在“连接”这页中,下方有“输入登录数据库的信息”用户名:admin,并在下面选择“空白密码” 2.在“所有”这页的 ...