乱码运行java -jar xx.jar存到hbase里的数据乱码

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了乱码运行java -jar xx.jar存到hbase里的数据乱码相关的知识,希望对你有一定的参考价值。

程序在Eclipse里运行没有问题,但是打成jar包之后写入hbase里的数据会有乱码,ES里正常

经过测试,运行命令里加上-Dfile.encoding=utf-8 就可以正常写入,但是cmd命令里还是会显示乱码,有待解决

java -Dfile.encoding=utf-8 -jar xx.jar

 

分析:

-Dfile.encoding 解释:
在命令行中输入 Java,在给出的提示中会出现 -D 的说明:
-D= # set a system property
-D 后面需要跟一个键值对,作用是设置一项系统属性
对 -Dfile.encoding=UTF-8 来说就是设置系统属性 file.encoding 为 UTF-8
那么 file.encoding 什么意思?字面意思为文件编码。
搜索 java 源码,只能找到 4 个文件中包含 file.encoding 的文件,
也就是说,只有四个文件调用了 file.encoding 这个属性。
在 java.nio.charset 包中的 Charset.java 中,这段话的意思说的很明确了。
简单说就是默认字符集是在 java 虚拟机启动时决定的,
依赖于 java 虚拟机所在的操作系统的区域以及字符集。
代码中可以看到,默认字符集就是从 file.encoding 这个属性中获取的。

以上是关于乱码运行java -jar xx.jar存到hbase里的数据乱码的主要内容,如果未能解决你的问题,请参考以下文章

java 将编码格式为utf-8的文件内容以 GBK编码存到txt文档

在cmd里运行mysql,显示中文乱码

java中文路径乱码

idea运行java项目js中文乱码如何解决

java 执行dos命令 中文显示乱码 怎么解决

Windows2012上如何查光纤卡HBA的WWN