大家好
我们在Flink数据写入Kafka时出现中文乱码问题,之后为了只管确定数据将Sink 
换成Print打印出来,结果发现还是乱码。然后查看TM的日志,发现日志里面的中文也是乱码,而且显示执行的是cast(_UTF-16LE0),这一点也很不解,如下:
"promotions":[{"amount":1000,"stage":1,"scope":0,"itemIndex":[1],"name":"å\u008D¡é¡¹æ\u009D\u0083ç\u009B\u008Aæ\u008Aµæ\u0089£","type":1,"value":1}],"deleted":0,"closeStateDesc":"æ\u009Cªå\u0085³é\u0097­","refundAbleDesc":"","createTime":1623206122000,"reserveOrderId":"","paid":true,"wipeOutAmount":0,"payChannel":13}':VARCHAR(2147483647)
 CHARACTERSET"UTF-16LE") AS dubbo_data2, CAST(_UTF-16LE'æ— 
需支付':VARCHAR(2147483647) CHARACTERSET"UTF-16LE") AS value_1], 
where=[(behavior = _UTF-16LE'CREATED':VARCHAR(2147483647) 
CHARACTERSET"UTF-16LE")]) -> SinkConversionToTuple2 -> Map -> Sink: Unnamed 
(1/1).




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


上述方式都行不通,而且都是乱码,请问社区伙伴有遇到过类似问题,有好的解决方案吗?




| |
李闯
|
|
jasonlee1...@163.com
|
签名由网易邮箱大师定制

回复