新网创想网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
利用JAVA读取HDFS文件数据时出现乱码如何解决?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。
创新互联-专业网站定制、快速模板网站建设、高性价比阿尔山网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式阿尔山网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖阿尔山地区。费用合理售后完善,10多年实体公司更值得信赖。使用JAVA api读取HDFS文件乱码踩坑
想写一个读取HFDS上的部分文件数据做预览的接口,根据网上的博客实现后,发现有时读取信息会出现乱码,例如读取一个csv时,字符串之间被逗号分割
查阅了众多博客,解决方案大概都是:使用xxx字符集解码。抱着不信的想法,我依次尝试,果然没用。
解决思路
因为HDFS支持6种字符集编码,每个本地文件编码方式又是极可能不一样的,我们上传本地文件的时候其实就是把文件编码成字节流上传到文件系统存储。那么在GET文件数据时,面对不同文件、不同字符集编码的字节流,肯定不是一种固定字符集解码就能正确解码的吧。
那么解决方案其实有两种
我选用动态解码的思路后,其难点在于如何判断使用哪种字符集解码。参考下面的内容,获得了解决方案
java检测文本(字节流)的编码方式
需求:
某文件或者某字节流要检测他的编码格式。
实现:
基于jchardet
net.sourceforge.jchardet jchardet 1.0