MySQL上插入汉字时报错例如以下。详细见后面分析。

Incorrect string value: '\xD0\xC2\xC8A\xBEW' for column 'ctnr' at row 1





MySQL字符集相关參数:

character_set_server :  服务器字符集

collation_server     : 服务器校对规则 





character_set_database : 默认数据库的字符集

collation_database     : 默认数据库的校对规则





character_set_client:server使用该变量取得链接中客户端的字符集





character_set_connection:server将客户端的query从character_set_client转换到该变量指定的字符集。

character_set_results:server发送结果集或返回错误信息到client之前应该转换为该变量指定的字符集









有两个语句能够设置连接字符集。例如以下:

A

SET NAMES 'charset_name' 相当于以下三句:

mysql> SET character_set_client = x;

mysql> SET character_set_results = x;

mysql> SET character_set_connection = x;   #这个也设置了collation_connection的默认值x





B

SET CHARACTER SET charset_name 相当于以下三句:

mysql> SET character_set_client = x;

mysql> SET character_set_results = x;

mysql> SET collation_connection = @@collation_database;





character_set_results为NULL时,server对返回结果集不做不论什么转换

mysql> SET character_set_results = NULL;





由于字符集编码引起的问题在pg上报的错是:invalid byte sequence for encoding "UTF8"。详细见參考

http://blog.csdn.net/beiigang/article/details/39582583

MySQL上字符集编码引起的问题报:Incorrect string value,详细见以下实验:



1

mysql> show variables like '%character_set%';

+--------------------------+----------------------------+

| Variable_name            | Value                      |

+--------------------------+----------------------------+

| character_set_client     | gbk                        |

| character_set_connection | gbk                        |

| character_set_database   | utf8                       |

| character_set_filesystem | binary                     |

| character_set_results    | gbk                        |

| character_set_server     | utf8                       |

| character_set_system     | utf8                       |

| character_sets_dir       | /usr/share/mysql/charsets/ |

+--------------------------+----------------------------+

8 rows in set (0.00 sec)





2

mysql> create table tb_tt (id int, ctnr varchar(60));

Query OK, 0 rows affected (0.06 sec)





3

mysql> show create table tb_tt;

+-------+-----------------------------------------------------------------------

-----------------------------------------------------+

| Table | Create Table

                                                     |

+-------+-----------------------------------------------------------------------

-----------------------------------------------------+

| tb_tt | CREATE TABLE `tb_tt` (

  `id` int(11) DEFAULT NULL,

  `ctnr` varchar(60) DEFAULT NULL

) ENGINE=InnoDB DEFAULT CHARSET=utf8 |

+-------+-----------------------------------------------------------------------

-----------------------------------------------------+

1 row in set (0.00 sec)





4

mysql>  insert into tb_tt(id,ctnr) values(1,'新華網');

Query OK, 1 row affected (0.02 sec)





5

mysql> select * from tb_tt;

+------+--------+

| id   | ctnr   |

+------+--------+

|    1 | 新華網 |

+------+--------+

1 row in set (0.02 sec)





6

mysql> set names 'UTF8';

Query OK, 0 rows affected (0.00 sec)





7

mysql> show variables like '%character_set%';

+--------------------------+----------------------------+

| 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     | utf8                       |

| character_set_system     | utf8                       |

| character_sets_dir       | /usr/share/mysql/charsets/ |

+--------------------------+----------------------------+

8 rows in set (0.00 sec)





8

mysql>  insert into tb_tt(id,ctnr) values(2,'新華網');

ERROR 1366 (HY000): Incorrect string value: '\xD0\xC2\xC8A\xBEW' for column 'ctnr' at row 1

9

If you change the default character set or collation for a database,

stored routines that use the database defaults must be dropped and

recreated so that they use the new defaults. (In a stored routine,

variables with character data types use the database defaults if the

character set or collation are not specified explicitly. See [HELP

CREATE PROCEDURE].)

參考:

http://dev.mysql.com/doc/refman/5.5/en/globalization.html

http://dev.mysql.com/doc/refman/5.5/en/alter-database.html

-----------------

转载请著明出处:

blog.csdn.net/beiigang

MySQL字符编码问题,Incorrect string value的更多相关文章

  1. Linux MySQl 5.7.17 MySQL ERROR 1366(HY000):Incorrect string value 解决方法

    MySQL ERROR 1366(HY000):Incorrect string value,在往数据库中插入中文的时候会出现. 这也就是编码问题,网上大部分都是说设置下配置文件中的设置,而可悲的是在 ...

  2. mysql导入数据库出现:Incorrect string value: '\xE7\x82\xB9\xE9\x92\x9F' for column 'chinese' at row 1

    mysql导入数据库出现:Incorrect string value: '\xE7\x82\xB9\xE9\x92\x9F' for column 'chinese' at row 1 使用 sho ...

  3. 修改数据库mysql字符编码为UTF8

    Mysql数据库是一个开源的数据库,应用非常广泛.以下是修改mysql数据库的字符编码的操作过程. 步骤1:查看当前的字符编码方法 mysql> show variables like'char ...

  4. linux mysql字符编码问题

    发布:thatboy   来源:脚本学堂     [大 中 小] 本文介绍下,linux环境中mysql字符编码问题的解决办法,有遇到mysql编码问题的朋友,可以参考下本文的介绍,希望对你有一定的帮 ...

  5. mysql General error: 1366 Incorrect string value: '\xF0\x9F\x91\x8D\xF0\x9F...' for column 'dianpumiaoshu' at row 1 解决方法

    mysql General error: 1366 Incorrect string value: '\xF0\x9F\x91\x8D\xF0\x9F...' for column 'dianpumi ...

  6. mysql 彻底解决:Incorrect string value: '\xF0\x9F\x98\xAD",...' for column 'commentContent' at row 1

    彻底解决:Incorrect string value: '\xF0\x9F\x98\xAD",...' for column 'commentContent' at row 1 今天在爬取 ...

  7. MySQL ERROR 1366(HY000) Incorrect string value

    有以下两张表: mysql> show tables; +---------------+ | Tables_in_old | +---------------+ | book | | pres ...

  8. mysql 插入汉字 异常 Incorrect string value: '\xE8\xA7\x84\xE5\x88\x99' for column 'name'

    今天使用mysql出现 Incorrect string value: '\xE8\xA7\x84\xE5\x88\x99' for column 'name' 异常 通过查找问题,发现是字段编码不支 ...

  9. php 解决MySQL插入数据出现 Incorrect string value: '\xF0\x9F\x92\x8BTi...'错误

    在项目中向MySQL插入数据时.发现数据插入不完整,通过调试,发现插入语句也没什么特殊的错误. 可是就是差不进去,于是就打开mysqli错误的调试 $ret = mysqli_query($this- ...

随机推荐

  1. 带你彻彻底底弄懂Scroller

    Scroller的使用 这是一个滑动帮助类.并不能够使View真正的滑动,而是依据时间的流逝.获取插值器中的数据.传递给我们.让我们去配合scrollTo/scrollBy去让view产生缓慢滑动,产 ...

  2. 将Firefox设置为使用远程DNS

    将Firefox设置为使用远程DNS 原文 https://www.my-proxy.com/blog/firefox-remote-dns 测试当前在用DNS              https: ...

  3. 变量get、set设置

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...

  4. C#制作文本转换为声音的demo,保存音频文件到本地

    TTS(Text To Speech)可以实现把文本转换成语音并朗读出来.Windows Xp可以使用Com组件--Microsoft Speech Object Library实现TTS,Windo ...

  5. kali之EtterCap学习

    EtterCap是一个基于ARP地址欺骗方式的网络嗅探工具,主要适用于交换局域网络.借助于EtterCap嗅探软件,渗透测试人员可以检测网络内明文数据通讯的安全性,及时采取措施,避免敏感的用户名/密码 ...

  6. 【Uva 10641】 Barisal Stadium

    [Link]: [Description] 输入一个凸n(3≤n≤30)边形体育馆和多边形外的m(1≤m≤1000)个点光源,每个点光 源都有一个费用值.选择一组点光源,照亮整个多边形,使得费用值总和 ...

  7. Finance and Good Society

    Finance is a technology of great power. It plays an important role in our society which range from t ...

  8. HDU 2563 统计问题 (递推)

    A - 统计问题 Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Submit Sta ...

  9. widget-移除底部小部件内容

    今天有一个要求,就是在调出手机窗口小部件的时候,让其中的某些小部件不显示.折腾了好久,虽然不知道原理,最终还是实现了屏蔽其中个别小部件的方法.记录下来 要想屏蔽底部小部件的显示,只需要把相关的类跟广播 ...

  10. Jodd-vtor验证框架

    VTor是一个编程式验证框架,适用于任意java对象的验证.它是一个快速.微型的.专注于验证的框架.也可以通过注解或者手动设置验证条件.验证条件也可以在profile中分组.VTor是可扩展的,用户很 ...