当前位置: 首页 > news >正文

Kettle——部分表中文乱码

问题:使用Kettle的表输入——字段选择——表输出流程中,将数据表写入到GaussDB表时,发现部分表出现了中文乱码,在Kettle的preview data预览的数据也是中文乱码。

1、处理步骤一:

在spoon.bat 的 set PENTAHO_DI_JAVA_OPTIONS后面加上参数 -Dfile.encoding=UTF-8,

这个方式可以解决Kettle可视化图形页面抽数中文乱码的问题,但是会导致自己写的bat脚本重定向日志里的中文乱码,于是出现了 表字段编码、Kettle端的编码、bat脚本的重定向日志里的编码冲突的现状。

2、处理步骤二:

由于是部分表出现中文乱码的现象,查了中文乱码表和正常表的字段编码

select * from information_schema.columns where table_schema='SchemaName' and table_name ='TableName'

发现中文乱码和正常表的 data_type 字段编码都是 character varying,且character_set_name都是null,这说明该字段未显式指定字符集,而是继承数据库的默认字符集。

查询数据库的默认编码是UTF8

show server_encoding;

在Kettle的表输入控件查询客户端编码是UTF8

SHOW CLIENT_ENCODING;

Kettle的表输入控件右键,有一个“显示输出字段”,可以看到乱码字段的存储是 binary-string。这说明在Kettle处理数据的链路中出现了隐形转换。

3、处理步骤三:

GaussDB的数据库URL加参数:&clientEncoding=UTF8&serverEncoding=UTF8&stringtype=unspecified&characterEncoding=UTF8(无效)

参数说明:

clientEncoding=UTF8&serverEncoding=UTF:显示指定客户端和数据库服务器端的字符编码

stringtype=unspecified:强制JDBC将字符串按原始UTF8编码

characterEncoding=UTF8:兜底驱动层编码解析

这个步骤中得到的结果是:表输入的preview data是乱码;字段选择的preview data是乱码;表输出的preview data和结果是乱码。

4、处理步骤四:

在处理步骤二时,知道了乱码的存储是binary-string,编辑字段选择控件,有Encoding列,对String类型的Encoding列选择 UTF8。

这个步骤中得到的结果是:表输入的preview data是乱码;字段选择的preview data是正常的;表输出的preview data和结果是正常的。这个处理不需要在数据库URL后加字符编码参数。

总结:使用Kettle对数据流进行处理时,字符编码会存在隐形转换,最好使用字段选择的Encoding显示字段字符集。

http://www.cnnetsun.cn/news/5360.html

相关文章:

  • escpos-php热敏打印机快速上手实战指南
  • 国家自然科学基金数据查询系统:科研数据分析的终极利器
  • Meld对比工具完全指南:零基础掌握文件与代码差异分析
  • Paper2Poster:基于AI的学术海报自动生成系统完整指南
  • Anti-Adblock Killer浏览器安装配置完全指南
  • 终极PDF页面尺寸分析工具 - 简单快速统计所有文档
  • Ubuntu aarch64\arm64系统安装vscode
  • Wan2.2-T2V-A14B在婚礼仪式流程预演中的个性化定制服务
  • postman几种常见的请求方式
  • 基于CPFEM的晶体塑性孪晶滑移子程序研究及视频演示
  • 终极WYSIWYG文本编辑器:Simditor的完整使用指南
  • 解读无菌生产核心防线:First Air 与 AVS 气流可视化测试的关键价值
  • 智能蛋白质工程突破:AI如何重新定义生物技术研发范式
  • 终极实战指南:构建高效零样本分类系统的8大核心技术
  • 如何快速掌握Web安全:新手完整实战指南
  • 解锁知识管理新维度:Open Notebook智能笔记工具完全指南
  • [鸿蒙2025领航者闯关] ArkUI动画实战
  • CST电动车EMC仿真——电机控制器MCU滤波仿真
  • Wan2.2-T2V-A14B在建筑可视化动画中的创新应用
  • 创新驱动,多元融合——“五维发力”织就城乡医养结合幸福网
  • XTOM高精度3D扫描测量仪,重塑汽车模具制造与质量控制的“数字引擎”
  • 什么是AI智能体?一文彻底讲透,零基础也能看懂!
  • 编程竞赛专项提升:如何通过专题刷题实现能力跃迁?
  • MetaRTC 新手完整入门指南:从零开始掌握跨平台 WebRTC 开发
  • 基于SSM框架的书店管理系统设计与实现开题报告模板
  • Wan2.2-T2V-5B在旅游宣传中的应用:自动制作景点介绍视频
  • 从文本到高清视频:Wan2.2-T2V-A14B的生成逻辑深度拆解
  • 【干货收藏】大语言模型工作原理全解析:从输入到输出的技术奥秘
  • 【Git学习】Git的tag标签
  • Pomolectron:高效番茄工作法桌面应用指南