一.环境及问题描述 1. 环境 操作系统:win10,64bit. python版本:2.7.15 mysql版本:5.7.23 2. 问题描述 使用python从某个数据文件读取数据,处理后,用MySQLdb去连接数据库表并插入数据,此时报错: OperationalError: (1366, "Incorrect string value..." 网上可以查到是编码问题: 出现这个异常是mysql问题,而非python的问题,这是因为mysql的字段类型是utf-xxx, 而在my…
首先描述下问题:  在使用python计算出结果后将结果插入到mysql过程中,报如下错误.原因很好定位就是编码的问题.那么到底是编码哪里出了问题了呢? 报错如上: 排查顺序: 第一:python的编码 自己的代码,发现打开的时候的确已经制定了编码?那么问题应该不是在python的编码问题. 同时采用: 打印出word[5] 又发现会报错 ASCii 不识别等错误.于是再这里纠结了很久很久.终于把打印问题解决了. 解决办法:如果要打印出正常的中文,在程序开头加上这么一段代码 即可: python…
插数据库报错 (1366, "Incorrect string value: '\\xF3\\xB0\\x84\\xBC</...' for column 'content' at row 1") 改编码utf8mb4解决 #!/usr/bin/env python # coding:utf8 # author:Z time:2018/7/25 import requests from bs4 import BeautifulSoup import pymysql url='ht…
数据库报错这个多半是数据库在创建的时候没有选择字符编码,导致输入中文的时候出现报错. > 1366 - Incorrect string value: '\xE6\xB1\x9F\xE6\x96\x87' for column 'Teacher' at row 1 使用命令查看字符编码: show variables like "%character%"; 对于这个问题,改一下字符集为uft-8即可. 如果数据库已经创建成功,那最好把表里面的字段的字符编码也改一下. 如果没有使用…
问题描述: 插入Mysql时失败了,python代码报如下异常: pymysql.err.InternalError: (1366, "Incorrect string value: '\\xF0\\x9D\\x90\\xBF;...... 原因分析: UTF-8编码有可能是两个.三个.四个字节.Emoji表情是4个字节,而Mysql的utf8编码最多3个字节,所以数据插不进去. 解决方案: 修改Mysql表的字符集和Pymysql连接库时的字符集. 1.修改Mysql表的字符集 说明:将已经建…
今天在测试mysql时,发现插入数据的问题,下面和大家分享下解决方法: 首先看问题原因: [Err] 1366 - Incorrect string value: '\xCF\xD6' for column 'title' at row 1 [Err] [Msg] Finished - Unsuccessfully 这句话告诉我们这里插入的title被赋予的值出了问题,所以这就简单了,只需要将编码格式改下就ok了. 指定编码格式:CHARSET utf8 如果有客户端就方便了 总结: 中文报错无…
今天使用navicat向MySQL中插入中文时,报错: - Incorrect string value:... 在我自己数据库设计之初,没有设计好字符编码格式的问题. 使用如下语句解决: alter table tableName convert to charset utf8;…
解决pymysql.err.InternalError: (1366, "Incorrect string value: '\\xF0\\x9F\\x8C\\xB8' for column 'headline' at row 1") 当使用Python对MySQL数据库进行操作时,我们可能会遇到这种错误,这是因为编码所引起的错误,我们必须确保MySQL中的数据库中的编码支持utf8格式,才能将正常的中文格式的字符串插入到MySQL中,我们必须要确保如下character_set_ser…
周围环境:Win7 64位置,mysql-5.6.25-winx64,MySQL workbench 问题:MySQL在更新时出现异常: warning(s): 1366 Incorrect string value: '\xE8\x82\x96\xE5\xB1\xB1...' for column 'sub_station_name' 解决: 1.数据库schema字符集设置为utf-8 2.表字符集设置为utf-8 3.中文列字符集设置为utf-8 4.连接url里面已经指定了Charset…
(1366, "Incorrect string value: '\\xF0\\x9F\\x8E\\xAC\\xE5\\x89...' for column 'description' at row 1") 针对MySQL的这个错误, 修改方法是 set names utf8mb4; SET CHARACTER SET utf8mb4;SET character_set_connection=utf8mb4;…
django 连接MYSQL时,数据迁移时报:django.db.utils.InternalError: (1366, "Incorrect string value: '\\xE9\\x97\\xAE\\xE9\\xA2\\x98' for column 'name' at row 5") 这个问题是由于字符集的问题导致的: 注意要同时设置:character-set 和_set_server的字符集,再执行数据库的创建的时候,查询后会看到:…
mysql 执行insert时报错 > 1366 - Incorrect string value: '\xE6\xB5\x8B\xE8\xAF\x95...' for column 'description' at row 1 一看,果然数据库字符集不是utf8,果断重新设置…
问题提出 昨天在运行django时,初始化使用的是自带的数据库,后来更换mysql数据库,数据库同步之后,打开mysql无法添加数据,插入数据时,提示django.db.utils.InternalError: (1366, "Incorrect string value: '\\xE7\\x94\\xA8\\xE6\\x88\\xB7' for column 'name' at row 1") 原因 网上资料说是数据库的问题,新建数据库的时候需要指定编码格式,而在更换mysql数据库…
mysql General error: 1366 Incorrect string value: '\xF0\x9F\x91\x8D\xF0\x9F...' for column 'dianpumiaoshu' at row 1 解决方法 因为传入了emoji表情 曾经考虑过过滤 但是行不通 所以唯一的方法 就是urlencode后存入数据库 读取的时候再urldecode…
sqlalchemy.exc.InternalError: (pymysql.err.InternalError) (1366, "Incorrect string value: '\\xE6\\xB1\\x89\\xE8\\xAF\\xAD...' for column 'className' at row 1")[SQL: INSERT INTO classmessage (`classId`, `className`, xq, `useOrNot`, `increaseTime`…
在Laravel项目的 storages/logs/Laravel.log看到的错误信息片段: SQLSTATE[HY000]: General error: 1366 Incorrect string value: '\xF0\x9F\x91\x8B\xF0\x9F...' for column 'name' at row 1 出错原因:检查数据库此字段的字符集与整理字符集是否与SQL语句传递数据的字符集相同:不相同则会引发MySQL1366错误. 解决方法: #1.检查数据表所有字段的状态…
mysql insert内容包含表情或者unicode码时候,插入Mysql时失败了,报如下异常: java.sql.SQLException: Incorrect string value: '\xF0\x9F\x92\x94' for column 'name' at row 1 at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1073) at com.mysql.jdbc.MysqlIO.checkErrorPacke…
Emoji表情字符现在在APP已经广泛支持了.但是MySQL的UTF8编码对Emoji字符的支持却不是那么好.所以我们经常会遇到这样的异常:   Java.sql.SQLException: Incorrect string value: '\xF0\x9F\x98\x8E' for column 'nick' at row 1 1 原因是Mysql里UTF8编码最多只能支持3个字节,而Emoji表情字符使用的UTF8编码,很多都是4个字节,有些甚至是6个字节.   解决的方案有两种:   使用…
刚折腾了ABP框架,为了跨平台,将SQL Server数据库换成了MySQL数据库,ABP框架上支持多语言,中间被字符集折腾的够呛,翻了N个博客,最后终于在StackOverFlow 上找到了最终的解决方法,来记录一下,同时感谢大佬们的无私奉献. 关闭MySQL命令行窗口输入: net stop mysql1更改配置文件打开安装目录的my.in,添加 [client] default-character-set=utf8mb4 [mysqld] character-set-server=utf8…
python3使用pymysql报错:   image.png 代码: #插入数据 try: sql = 'INSERT INTO classb (a_id,name,age) VALUES (6,"韩",12)' cur.execute(sql) except Exception as e: print(e) 解决办法一:修改创建连接位置,设置字符编码: db = pymysql.connect(user='root',password='123456',database='1609…
bug现象 使用连接数据库的可视化软件插入 emoj 表情数据.生僻字,可以正常插入.(导致我一直以为跟表情没有任何关系,谷歌出来一堆跟修改数据库.表.字段 的编码的结果....)但是一启动程序插入新数据就会报这个错误,一一检查过数据库.表.字段的编码都是正确的,后面只能把插入数据的代码撸下来单独跑,在代码里面尝试插入 生僻字.emoj 表情,终于重现了bug... 然后谷歌的关键词转向了 python. peewee 解决方法 # 1.创建连接 cache_database = PooledM…
1.报错原因: mysql utf-8 编码储存的是 2-3个的字节,而emoji则是4个字节. 2.解决办法: 修改mysql的配置文件,windows下的为my.ini(linux下的为my.cnf),修改的内容都一样. [client] default-character-set = utf8mb4 [mysql] default-character-set = utf8mb4 [mysqld] character-set-server = utf8mb4 collation-server…
一.报错说明 数据库此字段的字符集与整理字符集是否与SQL语句传递数据的字符集相同:不相同则会引发MySQL1366错误. 二.产生原因 windows 安装MySql 的时候选择的是默认的编码,创建数据库也选择默认编码,致使该库的编码默认gbk. 该库下的表默认也会是该gbk,字段默认也会是gbk. 三.解决方法 1.在my.ini(linux 是my.cf) 中添加 [client] default-character-set =utf8 [mysql] default-character-…
很明显是编码的问题.检查了一下$conn->query("set names utf8");已经加在代码里了.那莫非是数据库编码不是utf8? 看了一下 还真不是 于是右键要修改的表,点击alter table,做了如下修改. 不报任何期望的重启了服务器又试了一次 果然还是那个错.... 这种场面我见多了,早就看淡了.所以接着排查问题. 发现在SQL语句复制到数据库执行也是这个亚子,中文用命令添加完全不行,但是手动添加却是正常的: 听网上的把编码改成utf8mb4依然不行 然后!…
摘抄自:https://blog.csdn.net/dmw412724/article/details/81119325 原因:mysql的UTF-8只支持三个字节的存储,而一般字符是三个字节,但是emoji表情是4个字节,所以存储不了. 第一种方案:修改数据库表字符集 而mysql为了解决这个问题,在5.5.3版本之后转而支持了存储4个字节的utf8字符,字符集为utf8mb4.这个相当于windowsX64和windowsX86的区别,64位是兼容32位的,也就是说utf8mb4存取utf8…
在保存数据时我们如果页面编辑与数据库字段编码不一样或字符集超出你了mysql数据库中的字符类型就有可能出一\\xF0\\x9F\\x98\\x8A\\xF0\\x9F提示了,下面我来简单的解决方法. 比较简便的方式是Solution ,使用php的mb_系列函数可以搞定(iconv 搞不定): $str= mb_convert_encoding ( $str, ‘UTF-′ );…
出现这个错误是因为我在表中插入了一条含有中文字符的语句: 修改方法:(两种) 1:命令行  set names gbk:(此为设置通信编码) 2:my.ini中查找sql-mode 将 sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION", 修改为 sql-mode="NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION", 重启mysql后…
问题分析 普通的字符串或者表情都是占位3个字节,所以utf8足够用了,但是移动端的表情符号占位是4个字节,普通的utf8就不够用了,为了应对无线互联网的机遇和挑战.避免 emoji 表情符号带来的问题.涉及无线相关的 MySQL 数据库建议都提前采用 utf8mb4 字符集,这必须要作为移动互联网行业的一个技术选型的要点 Mysql 版本的限制,Mysql 5.5.3之前的版本,支持的utf8为3字节的,Mysql 5.5.3之后的版本支持utf8mb4 解决方案 修改mysql的配置文件,li…
把name的字符集修改成 utf8 ,然后把表关了从新打开,就可以了 如果还不行,就从新创表,在创表的时候修改name的字符集 如果还不行,就修改my.ini 它在你的mysql安装路径里 [mysql] default-character-set=utf8 [mysqld] character-set-server=utf8…
在做微信公众号保存用户数据时出现这种错误,一直不知道是哪里的原因,后来发现那个用户昵称带着一只兔子表情,由于数据库编码限制不能保存数据,所有需要先编码, 用PHP的函数就是base64_encode,读取时再解码base64_decode就ok 网上还有一种方法:将数据库字符集改成utf8mb4,因为用户量已经很大了,怕引起不必要麻烦,这种方式没有尝试…