免费观看又色又爽又黄的小说免费_美女福利视频国产片_亚洲欧美精品_美国一级大黄大色毛片

利用JAVA讀取HDFS文件數據時出現亂碼如何解決-創新互聯

利用JAVA讀取HDFS文件數據時出現亂碼如何解決?針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

創新互聯-專業網站定制、快速模板網站建設、高性價比阿爾山網站開發、企業建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式阿爾山網站制作公司更省心,省錢,快速模板網站建設找我們,業務覆蓋阿爾山地區。費用合理售后完善,10多年實體公司更值得信賴。

使用JAVA api讀取HDFS文件亂碼踩坑

想寫一個讀取HFDS上的部分文件數據做預覽的接口,根據網上的博客實現后,發現有時讀取信息會出現亂碼,例如讀取一個csv時,字符串之間被逗號分割

  • 英文字符串aaa,能正常顯示
  • 中文字符串“你好”,能正常顯示
  • 中英混合字符串如“aaa你好”,出現亂碼

查閱了眾多博客,解決方案大概都是:使用xxx字符集解碼。抱著不信的想法,我依次嘗試,果然沒用。

解決思路

因為HDFS支持6種字符集編碼,每個本地文件編碼方式又是極可能不一樣的,我們上傳本地文件的時候其實就是把文件編碼成字節流上傳到文件系統存儲。那么在GET文件數據時,面對不同文件、不同字符集編碼的字節流,肯定不是一種固定字符集解碼就能正確解碼的吧。

那么解決方案其實有兩種

  • 固定HDFS的編解碼字符集。比如我選用UTF-8,那么在上傳文件時統一編碼,即把不同文件的字節流都轉化為UTF-8編碼再進行存儲。這樣的話在獲取文件數據的時候,采用UTF-8字符集解碼就沒什么問題了。但這樣做的話仍然會在轉碼部分存在諸多問題,且不好實現。
  • 動態解碼。根據文件的編碼字符集選用對應的字符集對解碼,這樣的話并不會對文件的原生字符流進行改動,基本不會亂碼。

我選用動態解碼的思路后,其難點在于如何判斷使用哪種字符集解碼。參考下面的內容,獲得了解決方案

java檢測文本(字節流)的編碼方式

需求:

某文件或者某字節流要檢測他的編碼格式。

實現:

基于jchardet

<dependency>
	<groupId>net.sourceforge.jchardet</groupId>
	<artifactId>jchardet</artifactId>
	<version>1.0</version>
</dependency>

網頁標題:利用JAVA讀取HDFS文件數據時出現亂碼如何解決-創新互聯
當前鏈接:http://m.newbst.com/article24/coeije.html

成都網站建設公司_創新互聯,為您提供響應式網站靜態網站移動網站建設App設計電子商務動態網站

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

外貿網站制作