开发者社区> 问答> 正文

flink sql写mysql中文乱码问题怎么办?

我看flink官网介绍Table API & SQL的时候有打印sql执行计划中使用的是UTF-16LE字符集,为什么不用UTF-8呢?乱码会不会跟这个有关? https://ci.apache.org/projects/flink/flink-docs-release-1.13/zh/docs/dev/table/common/#%e8%a7%a3%e9%87%8a%e8%a1%a8

上述例子的结果是:


== Optimized Logical Plan == DataStreamUnion(all=[true], union all=[count, word]) DataStreamCalc(select=[count, word], where=[LIKE(word, _UTF-16LE’F%')]) DataStreamScan(id=[1], fields=[count, word]) DataStreamScan(id=[2], fields=[count, word])

== Physical Execution Plan == Stage 1 : Data Source content : collect elements with CollectionInputFormat*来自志愿者整理的flink邮件归档

展开
收起
moonlightdisco 2021-12-02 15:03:53 1303 0
1 条回答
写回答
取消 提交回答
  • 同遇到这个问题,看TM的日志的执行Vertic可以看到Cast(_UTF-16LE),然后我们是想往Kafka写入数据,结果写入乱码。

    然后想过通过(1)在集群机器的flink-conf.yaml文件中添加:env.java.opts: "-Dfile.encoding=UTF-8” (2) 通过DECODE()ENCODE()将字符串编码解码成UTF-8或者GBK,都行不通

    上述两种方式对乱码数据处理吗但是都是还会出现中文乱码。不知道你尝试过什么方法?有没有成功解决的?*来自志愿者整理的FLINK邮件归档

    2021-12-02 16:17:31
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
搭建电商项目架构连接MySQL 立即下载
搭建4层电商项目架构,实战连接MySQL 立即下载
PolarDB MySQL引擎重磅功能及产品能力盛大发布 立即下载

相关镜像