最近忙活电商数据的接入接口,可以把各大电商的数据同步到我们本地的Elasticsearch…. 也是个蛋疼的事情…

中间遇到个小问题. 在入库的时候遇到了问题,总是会爆  Incorrect string value: ‘\\xF0\\x9F\\x90\\xA8′ for column ‘signature’ at row 1   的问题..  这些是因为jd taobao的一些评论里面含有表情,emoji的图标。 这些个表情都是emoji,不能用utf8的,需要用utf8mb4,大家放心utf8mb4是兼容utf8,这是他的存储的字节从3字节变成了4字节而已。 


emoji的样子在python下居然可以直接显示表情,挺有趣…



xiaoru.cc

xiaoru.cc

xiaoru.cc

xiaoru.cc
这是我一开始的mysql的解码,基本是latin1的解码… …

mysql> SHOW VARIABLES LIKE ‘character_set_%’;
+————————–+—————————-+
| Variable_name | Value |
+————————–+—————————-+
| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | latin1 |
| character_set_results | latin1 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+————————–+—————————-+
7 rows in set (0.00 sec)
 
mysql> SHOW VARIABLES LIKE ‘collation_%’;
+———————-+——————-+
| Variable_name | Value |
+———————-+——————-+
| collation_connection | latin1_swedish_ci |
| collation_database | latin1_swedish_ci |
| collation_server | latin1_swedish_ci |
+———————-+——————-+
3 rows in set (0.00 sec)

我们可以直接set为utf8mb4 …

set character_set_database=utf8mb4

set collation_database=utf8mb4_unicode_ci

当然最好还是在my.cnf 配置下

[client]  
default-character-set = utf8mb4  
  
[mysql]  
default-character-set = utf8mb4  
  
[mysqld]  
character-set-client-handshake = FALSE  
character-set-server = utf8mb4  
collation-server = utf8mb4_unicode_ci  

这样重启后,就万无一失了,其实以后创建库的时候和以前一样就可以了,当然你可以在create database 语句追加character set utf8mb4编码。

创建数据库时编码设置
mysql> create database name character set utf8mb4;

默认用utf8mb4
mysql> alter table type character set utf8mb4;

转换表为 utf8mb4
mysql>  ALTER TABLE api_shopdata CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

修改一下django的settings.py,在数据库的配置中加入options项。

‘OPTIONS’: {‘charset’:'utf8mb4′}  

这样就不会再出现问题了…



对Python及运维开发感兴趣的朋友可以加QQ群 : 478476595 !!!
{ 2000人qq大群内有各厂大牛,常组织线上分享及沙龙,对高性能及分布式场景感兴趣同学欢迎加入该QQ群 }

另外如果大家觉得文章对你有些作用!   帮忙点击广告. 一来能刺激我写博客的欲望,二来好维护云主机的费用.
如果想赏钱,可以用微信扫描下面的二维码. 另外再次标注博客原地址  xiaorui.cc  ……   感谢!
暂无相关产品