Load数据到MySQL,入库部分数据乱码问题

面对着字符编码load到 MySQL的问题:可能是 gbk/utf-8/或者混合编码。

为了保证数据的原子性,雷哥的解决办法是:通过 Python转为16进制,然后通过 MySQL解析解析16进制,非常完美。

案例如下:

Python 的编码case:

>>> import binascii

### 转为16进制

>>> print binascii.b2a_hex(‘wo草‘)

776fe88d89

### 转为汉字

>>> print binascii.a2b_hex(‘776fe88d89‘)

wo草

MySQL 的反编码 case

### 转为16进制

mysql> select hex(‘wo草‘);

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

| hex(‘wo草‘)  |

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

| 776FE88D89   |

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

1 row in set (0.00 sec)

### 转为汉字

mysql> select unhex(‘776fe88d89‘)

-> ;

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

| unhex(‘776fe88d89‘) |

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

| wo草                |

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

1 row in set (0.00 sec)

时间: 2024-10-11 13:29:16

Load数据到MySQL,入库部分数据乱码问题的相关文章

如何实现MySQL随机查询数据与MySQL随机更新数据?

以下的文章主要介绍的是MySQL随机选取数据,对实现MySQ随机查询数据与MySQ随机更新数据的实际操作步骤的描述,以及对其实际操作中所要用到的语句的描述,以下就是对其具体操作步骤的描述. MySQL随机查询数据 以前在群里讨论过这个问题,比较的有意思.mysql的语法真好玩.他们原来都想用PHP的实现随机,但取出多条好像要进行两次以上查询.翻了手册,找到了下面这个语句,可以完成任务了. SELECT * FROM table_name ORDER BY rand() LIMIT 5; MySQ

php写入数据到mysql数据库中出现乱码解决方法

乱码情况: 在选择数据库前加入一句代码即可 mysql_query("set names utf8"); 最后效果

ORACLE 数据转换为MYSQL

ORACLE 数据转换为MYSQL ①将oracle数据转换为txt文本,且分割符为'|' ②新建表,记得修改的表结构,因为oracle和mysql 字段有些不一致的. 参照下面表格: ③执行导入操作 load data local infile '文件名.txt' into table 数据库表名  character set utf8 fields terminated by '|' ;

大数据技术之_18_大数据离线平台_04_数据分析 + Hive 之 hourly 分析 + 常用 Maven 仓库地址

二十.数据分析20.1.统计表20.2.目标20.3.代码实现20.3.1.Mapper20.3.2.Reducer20.3.3.Runner20.3.4.测试二十一.Hive 之 hourly 分析21.1.目标21.2.目标解析21.3.创建 Mysql 结果表21.4.Hive 分析21.4.1.创建 Hive 外部表,关联 HBase 数据表21.4.2.创建临时表用于存放 pageview 和 launch 事件的数据(即存放过滤数据)21.4.3.提取 e_pv 和 e_l 事件数据

mysql导入导出数据中文乱码解决方法小结

inux系统中 linux默认的是utf8编码,而windows是gbk编码,所以会出现上面的乱码问题. 解决mysql导入导出数据乱码问题 首先要做的是要确定你导出数据的编码格式,使用mysqldump的时候需要加上--default-character-set=utf8, 例如下面的代码: 复制代码 代码如下: mysqldump -uroot -p --default-character-set=utf8 dbname tablename > bak.sql 那么导入数据的时候也要使用--

[转]mysql导入导出数据中文乱码解决方法小结

本文章总结了mysql导入导出数据中文乱码解决方法,出现中文乱码一般情况是导入导入时编码的设置问题,我们只要把编码调整一致即可解决此方法,下面是搜索到的一些方法总结,方便需要的朋友. linux系统中 linux默认的是utf8编码,而windows是gbk编码,所以会出现上面的乱码问题. 解决mysql导入导出数据乱码问题 首先要做的是要确定你导出数据的编码格式,使用mysqldump的时候需要加上--default-character-set=utf8, 例如下面的代码: 代码如下: mys

解决mysql控制台查询数据乱码的问题,有图有真相

在mysql  控制台当 当为gbk的时候查询的数据是汉字,假设不是则为乱码.  set  names  gbk;  那么查询出来的数据则为汉字 解决mysql控制台查询数据乱码的问题,有图有真相,布布扣,bubuko.com

关于使用sqoop export 导出hdfs数据到mysql中文乱码问题

前几天使用sqoop将hdfs的数据导入mysql中,发现中文导进去后会乱码,我的执行命令是: sqoop export  --connect "jdbc:mysql://10.19.157.*****?useUnicode=true&characterEncoding=utf-8" --table msg_rule_copy --username root --password root*** --export-dir $path --hadoop-home $home --

解决mysql导入导出数据乱码问题

最近在linux上面用mysqldump导出数据,放在windows系统中导入就会出现中文乱码,然后就会导致出现: Unknown MySQL server host和Can't connect to the server的错误.解决mysql导入导出数据乱码问题就是统一导入导出的编码,linux默认的是utf8编码,而windows是gbk编码,所以会出现上面的乱码问题. 解决mysql导入导出数据乱码问题 首先要做的是要确定你导出数据的编码格式,使用mysqldump的时候需要加上--def