使用kafka consumer api時,中文亂碼問題


使用Intelli idea調試kafka low consumer時,由於broker存儲的message有中文,

idea中console端是可以正確顯示的

然后mvn package打包到服務器上執行,結果中文亂碼。

然后在kafka consumer代碼中byte轉為string時,使用了各種編碼

String mes = new String(bytes,"UTF-8");
String mes = new String(bytes,"GBK");
String mes = new String(bytes,"iso8859-1");

問題還是沒有解決。然后一直google,擺渡,看到有人說到jvm的默認編碼會影響程序的編碼,於是在程序中把

Charset.defaultCharset()打印出來,結果,在idea中顯示的是UTF-8,在服務器上執行時就變成了US-ASCII。

我整個工程都是以UTF-8編碼的,難怪在服務器上中文會亂碼了。問題找到了,然后又經過一番折騰,終於解決了問題

在/etc/profile添加HADOOP_OPT="-Dfile encoding=UTF-8",保存退出 source /etc/profile,重新執行

hadoop jar kafkaHdfs-1.0-SNAPSHOT-jar-with-dependencies.jar org.conan.kafka.AllTopicsConsumer ./hdfs.properties

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM