2026/4/17 4:09:10
网站建设
项目流程
芗城区建设局网站,学做衣服网站有哪些,重庆光龙网站建设,网站建设适合女生吗问题#xff1a;使用Kettle的表输入——字段选择——表输出流程中#xff0c;将数据表写入到GaussDB表时#xff0c;发现部分表出现了中文乱码#xff0c;在Kettle的preview data预览的数据也是中文乱码。1、处理步骤一:在spoon.bat 的 set PENTAHO_DI_JAVA_OPTIONS后面加上…问题使用Kettle的表输入——字段选择——表输出流程中将数据表写入到GaussDB表时发现部分表出现了中文乱码在Kettle的preview data预览的数据也是中文乱码。1、处理步骤一:在spoon.bat 的 set PENTAHO_DI_JAVA_OPTIONS后面加上参数 -Dfile.encodingUTF-8这个方式可以解决Kettle可视化图形页面抽数中文乱码的问题但是会导致自己写的bat脚本重定向日志里的中文乱码于是出现了 表字段编码、Kettle端的编码、bat脚本的重定向日志里的编码冲突的现状。2、处理步骤二由于是部分表出现中文乱码的现象查了中文乱码表和正常表的字段编码select * from information_schema.columns where table_schemaSchemaName and table_name TableName发现中文乱码和正常表的 data_type 字段编码都是 character varying且character_set_name都是null这说明该字段未显式指定字符集而是继承数据库的默认字符集。查询数据库的默认编码是UTF8show server_encoding;在Kettle的表输入控件查询客户端编码是UTF8SHOW CLIENT_ENCODING;Kettle的表输入控件右键有一个“显示输出字段”可以看到乱码字段的存储是 binary-string。这说明在Kettle处理数据的链路中出现了隐形转换。3、处理步骤三GaussDB的数据库URL加参数clientEncodingUTF8serverEncodingUTF8stringtypeunspecifiedcharacterEncodingUTF8无效参数说明clientEncodingUTF8serverEncodingUTF显示指定客户端和数据库服务器端的字符编码stringtypeunspecified强制JDBC将字符串按原始UTF8编码characterEncodingUTF8兜底驱动层编码解析这个步骤中得到的结果是表输入的preview data是乱码字段选择的preview data是乱码表输出的preview data和结果是乱码。4、处理步骤四在处理步骤二时知道了乱码的存储是binary-string编辑字段选择控件有Encoding列对String类型的Encoding列选择 UTF8。这个步骤中得到的结果是表输入的preview data是乱码字段选择的preview data是正常的表输出的preview data和结果是正常的。这个处理不需要在数据库URL后加字符编码参数。总结使用Kettle对数据流进行处理时字符编码会存在隐形转换最好使用字段选择的Encoding显示字段字符集。