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

使用Intelli idea調試kafka low consumer時,因爲broker存儲的message有中文,服務器

idea中console端是能夠正確顯示的jvm

而後mvn package打包到服務器上執行,結果中文亂碼。ide

而後在kafka consumer代碼中byte轉爲string時,使用了各類編碼oop

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

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

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

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

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

hadoop jar kafkaHdfs-1.0-SNAPSHOT-jar-with-dependencies.jar org.conan.kafka.AllTopicsConsumer ./hdfs.properties
相關文章
相關標籤/搜索