将字符串向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")
基本可以解决问题
----------------------------------------------------------------------------------------------------------------------------
今日发现,在GBK编码下,从浏览器直接打开hdfs文件不会出现乱码,但是在shell终端通过#>hdfs dfs -cat xxx 命令打开的hdfs文件出现了乱码问题。
将编码改回UTF-8,从浏览器直接打开hdfs文件会出现乱码,但是在shell终端通过#>hdfs dfs -cat xxx 命令打开的hdfs文件不出现乱码。
所以具体选择哪种编码,要看实际需求。
将字符串向hdfs中写入,出现中文乱码!的更多相关文章
- 写入MySQL中文乱码问题
相信使用数据库进行存储的大家都遇到过中文乱码问题,如何彻底解决?我百度了很多资料与博客,想把自己的经历总结起来给大家参考一下,接下来我先罗列一下大部分修改乱码问题的方法: 1. 修改MySQL数据 ...
- RStudio中,出现中文乱码问题的解决方案
RStudio中,出现中文乱码问题的解决方案解决步骤:1.设置RStudio文本显示的默认编码:RStudio菜单栏的Tools -> Global Options2.选择General -&g ...
- git status 显示中文和解决中文乱码
目录 git status 显示中文和解决中文乱码 解决git status不能显示中文 解决git bash 终端显示中文乱码 通过修改配置文件来解决中文乱码 git status 显示中文和解决中 ...
- 关于jFinal开发中遇到的中文乱码问题解决办法
关于jFinal开发中遇到的中文乱码问题解决办法 设置tomcat的编码,修改 <Connector port="8080" protocol="HTTP/1.1& ...
- Windows平台下在Emacs中使用plantuml中文乱码问题(已解决)
Windows平台下在Emacs中使用plantuml中文乱码问题(已解决) */--> code {color: #FF0000} pre.src {background-color: #00 ...
- 在Visual Studio Code 中配置Python 中文乱码问题
在Visual Studio Code 中配置Python 中文乱码问题 方法一:直接代码修改字符集 添加前四行代码 import io import sys #改变标准输出的默认编码 sys.std ...
- java web 中有效解决中文乱码问题-pageEncoding与charset区别, response和request的setCharacterEncoding 区别
这里先写几个大家容易搞混的编码设置代码: 在jsp代码中的头部往往有这两行代码 pageEncoding是jsp文件本身的编码contentType的charset是指服务器发送给客户端时的内容编码J ...
- Web(Jsp+ Servlet)开发中如何解决中文乱码问题
1.中文乱码的成因 编码的字符集和解码的字符集不一致. 2.web开发过程中可能出现的乱码的位置及解决方案 ①request乱码 在向服务器传递数据时,所传递的中文有可能出现乱码. post请求(协议 ...
- 关于mysql数据库插入数据,不能插入中文和出现中文乱码问题
首先,推荐一篇博客:http://www.cnblogs.com/sunzn/archive/2013/03/14/2960248.html 当时,我安装完mysql数据库后,新建一个数据库后插入数据 ...
随机推荐
- 逆向工程vgenerator(二)
前言 接上篇,这一篇主要的工具类和工厂类,包括数据库方法.通用方法,三个工厂. 常量 /** *author vvxtoys *默认xml开头 *文档分隔 *默认方法名 */ package cc.v ...
- spring静态注入
与其说是静态注入(IOC),不如讲是对JavaBean 的静态成员变量进行赋值. 一般我们在使用依赖注入的时候,如果当前对象(javaBean )创建(实例化)一次,那么非静态的成员变量也会实例化一次 ...
- 配置NFS
主机端 sudo apt-get install nfs-kernel-server 修改配置文件 sudo vim /etc/exports 添加: /home/nfs/fs_qtopia *(rw ...
- centos mysql 默认是区分大小写的,修改成不区分大小写
修改mysql为不区分大小写设置: [root@test-huanqiu ~]# vim /etc/my.cnf //添加下面一行设置 .... [mysqld] lower_case_table_n ...
- QTP测试.NET程序的时候,找不到对象或无法录制的解决方案
解决方案: .NET程序编译的时候:目标平台必须设置为x86,否则QTP找不到对象,不会完成录制
- zabbix自动发现华为,H3C交换机
一.添加自动发现规则 1.ip范围尽量别太大 zabbix是通过ARP来搜索符合条件的主机的 2.团体名和交换机要一样.这个OID值是提取系统信息的 在OID这块遇到个坑 我用Getif查询到的是1. ...
- 彻底搞懂Scrapy的中间件(一)
中间件是Scrapy里面的一个核心概念.使用中间件可以在爬虫的请求发起之前或者请求返回之后对数据进行定制化修改,从而开发出适应不同情况的爬虫. "中间件"这个中文名字和前面章节讲到 ...
- SAML2.0 SP端处理
sso response解析 import java.io.ByteArrayInputStream; import java.io.InputStream; import java.security ...
- 如何安装MySQL5.5.62
1.首先进入官网https://www.mysql.com MySQL分为社区版和商业版,社区版是免费的,这里选择社区版的. 2.此时选择一个比较简单的5.5版本 直接下载Wisndow(X86,32 ...
- mezzanine的breadcrumb
page_menu tag为什么能渲染出当前页的面包屑路径??靠的是request的page对象,要是page的自己或是它的的祖先才渲染,是根据page的属性page.is_current_or_as ...