kafka生产者发送中文(采用UTF-8编码)到消息队列,在本地IDEA运行调试正常。将软件打包成jar,在dos窗口运行jar包,发现发送中文数据时是乱码,消费者消费中文时也是乱码。

可能原因 放到服务器的dos运行jar包 , dos窗口的默认编码为GBK,将经过utf-8编码之后的数据再进行gbk解码-编码,所以此时消息会出现乱码。

解决方法 代码中进行的utf-8编码不进行改动
1, chcp 65001 将dos窗口编码变为utf-8
2,运行jar包时,使用命令:java -Dfile.encoding=utf-8 -jar jar包名
此时将dos窗口默认编码更改为UTF-8,保证生产消费,编码一致。

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐