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

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐