ERROR 1366 (HY000): Incorrect string value: '\ ' for column ' ' at row 1
来源:互联网 发布:机关网络管理制度 编辑:程序博客网 时间:2024/05/22 00:46
概述:01.版本 MYSQL 5.6mysql> select version();+-----------+| version() |+-----------+| 5.6.29 |+-----------+02.操作系统版本[root@mynode1 ~]# cat /etc/redhat-release Red Hat Enterprise Linux Server release 7.2 (Maipo)问题: 在使用mysql的source执行dum.sql转储文件时报错,由于sql转储文件里有中文,所以乱码的问题会经常发生,dmp.sql文件无论是用客户端工具nivicat,还是用mysql、source命令执行均无法正常执行报错如下:ERROR 1366 (HY000): Incorrect string value: '\xBD\xF1\xB3\xAF' for column 'username' at row 1 但在secureCRT单独执行insert插入中文可以执行成功,insert命令成功执行如下:mysql> INSERT INTO members VALUES ('1','飞翔的猪','root','9bde72','0','0','1','1','1','1','0','','1267364160','346','0','9999','0');Query OK, 1 row affected (0.00 sec) 经过分析,以上错误是与跟数据库相关的字符编码导致的,以下是我的解决思路1.检查my.conf端字符编码2.检查数据库字符编码3.检查建表的字符编码4.检查表columns的字符编码5.检查SQL转储文件的字符编码1.首先检查my.conf的字符编码#more /etc/my.conf[client]default-character-set=utf8[mysqld]default-storage-engine=INNODBcharacter-set-server=utf8collation-server=utf8_general_ci经确认,my.conf的编码为UTF8,collation-server=utf8_general_ci没有问题2.检查mysql数据库的字符编码mysql> show variables like '%char%';+--------------------------+---------------------------------------------------------------+| Variable_name | Value |+--------------------------+---------------------------------------------------------------+| character_set_client | utf8 || character_set_connection | utf8 || character_set_database | utf8 || character_set_filesystem | binary || character_set_results | utf8 || character_set_server | latin1 || character_set_system | utf8 || character_sets_dir | /usr/local/mysql/share/charsets/ |+--------------------------+---------------------------------------------------------------+mysql> show create database test;+----------+----------------------------------------------------------------+| Database | Create Database |+----------+----------------------------------------------------------------+| lanke | CREATE DATABASE `test` /*!40100 DEFAULT CHARACTER SET utf8 */ |+----------+----------------------------------------------------------------+数据库的字符集均是UTF83.检查建表的SQL语句编码Create Table || members | CREATE TABLE `members` (..................................省略) ENGINE=MyISAM AUTO_INCREMENT=30107 DEFAULT CHARSET=utf8 4.检查表列的编码格式mysql> SHOW FULL COLUMNS FROM members;+--------------------+-----------------------+-----------------+------+-----+---------+----------------+| Field | Type | Collation | Null | Key | Default | Extra |+--------------------+-----------------------+-----------------+------+-----+---------+----------------+| uid | mediumint(8) unsigned | NULL | NO | PRI | NULL | auto_increment || email | char(40) | utf8_general_ci | NO | MUL | | || username | char(15) | utf8_general_ci | NO | UNI | | || password | char(32) | utf8_general_ci | NO | | | || status | tinyint(1) | NULL | NO | | 0 | || emailstatus | tinyint(1) | NULL | NO | | 0 | || avatarstatus | tinyint(1) | NULL | NO | | 0 | || videophotostatus | tinyint(1) | NULL | NO | | 0 | || adminid | tinyint(1) | NULL | NO | | 0 | || groupid | smallint(6) unsigned | NULL | NO | MUL | 0 | || groupexpiry | int(10) unsigned | NULL | NO | | 0 | || extgroupids | char(20) | utf8_general_ci | NO | | | ||+--------------------+-----------------------+-----------------+------+-----+---------+----------------经检查members表和列的字符编码为UTF8以上字符集均是统一的UTF8格式,那么问题很可能出现在SQL的转储文件中,我们需要一个统一的unicode格式或许能解决中文乱码问题,用ultraedit打开dmp.sql转储文件进行字符及转化具体如下打开ultraeidt工具栏,分别找到 文件-->转换-->ASCII到UTF8(UNICODE编辑),完成后进行保存,再上传到mysql服务器上,重新执行source命令mysql>source /tmp/dum.sqlQuery OK, 1 row affected (0.00 sec)Query OK, 1 row affected (0.00 sec)................................省略Query OK, 1 row affected (0.00 sec)至此,不再出现ERROR 1366 (HY000)报错,中文字段全部成功insert,在客户端查看表,中文正常显示不再有乱码问题注:什么是unicode? Unicode 是为了解决传统的字符编码方案的局限而产生的,例如ISO 8859所定义的字符虽然在不同的国家中广泛地使用,可是在不同国家间却经常出现不兼容的情况。很多传统的编码方式都有一个共同的问题,即容许电脑处理双语环境(通常使用拉丁字母以及其本地语言),但却无法同时支持多语言环境(指可同时处理多种语言混合的情况)。 Unicode 编码包含了不同写法的字,如“ɑ/a”、“户/户/戸”。然而在汉字方面引起了一字多形的认定争议(详见中日韩统一表意文字主题)。 在文字处理方面,统一码为每一个字符而非字形定义唯一的代码(即一个整数)。换句话说,统一码以一种抽象的方式(即数字)来处理字符,并将视觉上的演绎工作(例如字体大小、外观形状、字体形态、文体等)留给其他软件来处理,例如网页浏览器或是文字处理器。几乎所有电脑系统都支持基本拉丁字母,并各自支持不同的其他编码方式。Unicode为了和它们相互兼容,其首256字符保留给ISO 8859-1所定义的字符,使既有的西欧语系文字的转换不需特别考量;并且把大量相同的字符重复编到不同的字符码中去,使得旧有纷杂的编码方式得以和Unicode编码间互相直接转换,而不会丢失任何信息。举例来说,全角格式区段包含了主要的拉丁字母的全角格式,在中文、日文、以及韩文字形当中,这些字符以全角的方式来呈现,而不以常见的半角形式显示,这对竖排文字和等宽排列文字有重要作用。在表示一个Unicode的字符时,通常会用“U+”然后紧接着一组十六进制的数字来表示这一个字符。在基本多文种平面(英文为 Basic Multilingual Plane,简写 BMP。它又简称为“零号平面”, plane 0)里的所有字符,要用四位十六进制数(例如U+4AE0,共支持六万多个字符);在零号平面以外的字符则需要使用五位或六位十六进制数了。旧版的Unicode标准使用相近的标记方法,但却有些微的差异:在Unicode 3.0里使用“U-”然后紧接着八位数,而“U+”则必须随后紧接着四位数。
0 0
- ERROR 1366 (HY000): Incorrect string value:’XXX’ for column 'XXX at row 1解决
- ERROR 1366 (HY000): Incorrect string value: '\xD6\xD0\xCE\xC4' for column XXX at row 1
- ERROR 1366 (HY000): Incorrect string value: '\xC6\xF4\xD3\xC3' for column 'name' at row 1
- ERROR 1366 (HY000): Incorrect string value: '\xE5\xB8\x82' for column 'address' at row 1
- ERROR 1366 (HY000): Incorrect string value: '\xE7\x9A\x84' for column 'name' at row 1
- ERROR 1366 (HY000): Incorrect string value: '\ ' for column ' ' at row 1
- ERROR 1366 (HY000): Incorrect string value: '\xC6\xF4\xD3\xC3' for column 'name' at row 1
- ERROR 1366 (HY000): Incorrect string value:’XXX’ for column 'XXX at row 1解决
- ERROR 1366 (HY000): Incorrect string value: '\xE5\xB8\x82' for column 'address' at row 1
- ERROR 1366 (HY000): Incorrect string value: '\xD6\xD0\xCE\xC4' for column XXX at row 1
- ERROR 1366 (HY000): Incorrect string value: '\xE4\xB8\xAD\xE5\x9B\xBD' for column 'tname' at row 1
- ERROR 1366 (HY000): Incorrect string value: '\xE4\xBD\xA0\xE5\xA5\xBD' for column 'name' at row 1
- ERROR 1366 (HY000): Incorrect string value: '\xC2\xEC\xD2\xCF\xD2\xB2...' for column 'title' at row
- ERROR 1366 (HY000): Incorrect integer value: 'False' for column 'bd_ip' at row 1943555
- [HY000][1366] Incorrect string value: '\xE3\x81\x94\xE6\xB3\xA8...' for column 'content' at row 1
- MySQL Error : Incorrect date value: '' for column '×××××××××' at row 1
- Incorrect string value: '' for column '' at row 1 错误分析
- MySQL - Incorrect string value: for column 'name' at row 1
- PHP json_encode中文乱码解决方法
- 第十二周—阅读程序(4)
- angularJS表单验证
- GStreamer基础教程10——GStreamer工具
- 解决DWZ框架文件上传没有关闭当前的dialog的问题
- ERROR 1366 (HY000): Incorrect string value: '\ ' for column ' ' at row 1
- VC非模态窗口最小化到任务栏
- ORMLite
- 微信支付流程图
- Sping MVC上传文件两种方式
- Install Cassandra on Linux(CentOS)
- Ubuntu下ibus输入法的图标消失解决方法
- 浏览器、Nginx、tomcat的连接过程及连接能力
- js 正则 demo