将字符串向hdfs中写入,出现中文乱码!

jsonObject.toString():需要处理的json对象转成的字符串
"/testData/ExtractKWByOnce.txt":写入hdfs中的目标路径
try {
            Configuration configuration=new Configuration();
            InputStream inputStream=new BufferedInputStream(
                    new ByteArrayInputStream(jsonObject.toString().getBytes("")) );//打开一个BufferedInputStream字节输入流

            FileSystem fs=FileSystem.get(URI.create("hdfs://localtion:8020"),configuration);//这里是creat()方法表示新创建一个文件,如果想在一个文件上追加,请用append()方法。
            FSDataOutputStream fsDataOutputStream=fs.create(new Path("/testData/ExtractKWByOnce.txt"));
            IOUtils.copyBytes(inputStream,fsDataOutputStream,1024,true);

            fsDataOutputStream.close();
            fs.close();
            inputStream.close();
        } catch (IOException e) {
            e.printStackTrace();
        }

用此方法可能会出现 中文乱码问题,hdfs上的文件和自己期待存入的内容有差异。

可以在 jsonObject.toString().getBytes("") 处将我们的编码格式指定为:

jsonObject.toString().getBytes("GBK")

基本可以解决问题

原文地址:https://www.cnblogs.com/xavier-xd/p/10551262.html

时间: 2024-11-06 09:41:49

将字符串向hdfs中写入,出现中文乱码!的相关文章

Linux中vi显示中文乱码的问题

由于在windows下默认是gb编码,而我的vim默认是utf-8(gedit默认也是utf-8),所以打开会成乱码.修改了一下配置文件,使vi支持gb编码就好了.$vi ~/.vimrclet &termencoding=&encodingset fileencodings=utf-8,gbk$:wq再次打开vi,显示就正常了.vim中编辑不同编码的文件时需要注意的一些地方此文讲解的是vim编辑多字节编码文档(中文)所要了解的一些基础知识,注意其没有涉及gvim,纯指字符终端下的vim.

C#写入Oracle 中文乱码问题

这个问题是我刚踏入工作觉得最坑的一个问题,找了很多方法.也问过不少人,但还是没能解决,偶然间返现了新大陆.... 具体问题描述是这样的: 我可以读取Oracle数据库中已有的中文内容,并能正确显示(Oracle中的中文通过SQLplus录入),但当我使用C#程序插入中文记录时,发现数据库中显示为乱码,读取出来也为乱码.我试了很多种编码方式,问题都不能解决. 以下是查找相关资料得到的解决办法: 主要问题是: oracle客户端软件的字符编码与服务器端的字符编码不一致造成的. oracle的字符编码

写入MySQL中文乱码问题

相信使用数据库进行存储的大家都遇到过中文乱码问题,如何彻底解决?我百度了很多资料与博客,想把自己的经历总结起来给大家参考一下,接下来我先罗列一下大部分修改乱码问题的方法: 1.   修改MySQL数据库的整体编码 引用自:http://www.cnblogs.com/24la/p/update-mysql-default-character.html 查看方式数据库编码: show variables like 'character%'; 该图是复制的(我的已经改好了) 出现上图情况时,可以进行

IDEA中 tomcat 控制台中文乱码解决 及GsonUtils无法转换时间格式

IDEA中 tomcat 控制台中文乱码解决 1.找到tomcat 安装目录下的 conf /logging.properties 文件打开 2.将 java.util.logging.ConsoleHandler.encoding = UTF-8 修改为 java.util.logging.ConsoleHandler.encoding = GBK 3.保存后 重启idea ————————————————GsonUtils需添加时间模式 datePattern指定模式 原文地址:https:

java中IO及中文乱码问题

第一次发这种博客,所以一直在纠结怎么开头,干脆直奔主题吧,把自己的一些总结体会记录下来,先从简单的学习开始,希望可以慢慢坚持,以后的内容可以写的更好更有意义. 其实真正在工作中中文乱码的问题遇到的不多,那是因为公司为了开发方便所以文件都统一编码了.但是我觉得还有很有必要去稍微了解一下其原理的. IO就是输入输出流,用面向对象来理解的话,就是输入,输出流对象,主要用来操作文件对象.所以再稍微谈谈文件的概念,即File对象.在Java中,File不是我们平时生活中指的某个具体文件,而是某个路径对象,

jni中字符转换中文乱码的处理方法

转自:http://blog.sina.com.cn/fangaosjtu 这两天在学习使用jni,在java程序中,调用海量词典的dll.利用jni的GetStringChars函数和NewString函数时,遇到了中文乱码的问题,折腾了一个晚上.查阅了一些资料,总结如下: 一.相关概念 java内部是使用16bit的unicode编码(UTF-16)来表示字符串的,无论中文英文都是2字节: jni内部是使用UTF-8编码来表示字符串的,UTF-8是变长编码的unicode,一般ascii字符

关于使用sqoop export 导出hdfs数据到mysql中文乱码问题

前几天使用sqoop将hdfs的数据导入mysql中,发现中文导进去后会乱码,我的执行命令是: sqoop export  --connect "jdbc:mysql://10.19.157.*****?useUnicode=true&characterEncoding=utf-8" --table msg_rule_copy --username root --password root*** --export-dir $path --hadoop-home $home --

解决eclipse中导入项目中文乱码的问题

在平时开发的过程中,导入别人的项目学习或者二次开发的经历相信大家都有,但是导入项目之后出现中文乱码的问题相信也困扰了不少人,当里面内容少的时候还可以通过复制粘贴解决,但项目内容多的时候就头痛了. 教大家一个间的快捷的方法 首先导入的文件成为了乱码是因为workspace的编码方式不对,linux下默认编码是UTF-8,windows的是GBK, 那么怎么修改workspace的编码方式呢 很简单在window----preference---workspace可以设置只要把编码改成utf-8就能

关于mysql数据库插入数据,不能插入中文和出现中文乱码问题

首先,推荐一篇博客:http://www.cnblogs.com/sunzn/archive/2013/03/14/2960248.html 当时,我安装完mysql数据库后,新建一个数据库后插入数据,首先出现了中文不能插入mysql数据库的问题,解决办法如下: 修改mysql文件中my.ini里的 sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"变成sql-mode="NO_A