Kettle实战100篇 第13篇 MySQL数据导出Excel数据乱码

2019/08/13 Kettle实战 浏览

该问题我在使用分页查询导出的时候碰到了乱码的情况,我的情况比较特殊,我通过浏览已经建立好的数据库连接的中的数据时并非乱码,而当我使用表输入组件中的预览数据时缺产生了乱码,因此我不得不设置我们的数据库连接参数

乱码主要分几种情况

一、查看我们的数据库的服务端字符集是否是UTF-8(常用字符集)

可以使用navicat连接到我们的数据库,然后使用命令行,输入查询语句进行查看,如下:

mysql> show variables like '%char%';
+--------------------------+-----------------------------------------------+
| Variable_name            | Value                                         |
+--------------------------+-----------------------------------------------+
| character_set_client     | utf8mb4                                       |
| character_set_connection | utf8mb4                                       |
| character_set_database   | utf8                                          |
| character_set_filesystem | binary                                        |
| character_set_results    | utf8mb4                                       |
| character_set_server     | utf8                                          |
| character_set_system     | utf8                                          |
| character_sets_dir       | D:\Users\xiaoymin\Bin\mariadb\share\charsets\ |
+--------------------------+-----------------------------------------------+
8 rows in set (0.08 sec)

其中character_set_server就是我们的数据库服务端编码

我们也可以使用SQL语句查询我们的表字段编码,如下:

mysql> show full columns from fund;

如果我们第一步检查是OK的,但是浏览数据依然是乱码,那么我们就需要修改Kettle中的配置参数

点击表输入组件的编辑按钮,对数据库信息进行编辑

1、选择高级选项卡,添加相关字符码

2、高级选项卡中设置names值,网上的解决方案大多是使用utf8,但是我本机使用后发现还是乱码,因此我改成了gbk,这个大家自行根据自己的情况设定

set names gbk;

如下图:

站内搜索

    Table of Contents