【乱码】运行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 这个属性中获取的。

时间: 2024-11-06 08:31:58

【乱码】运行java -jar xx.jar存到hbase里的数据乱码的相关文章

java使用c3p0连接mysql,写中文数据乱码的问题

此文说的乱码,是指所有中文的字符都变成了?. 首先,网上普遍搜索到的解决方案都是告诉你要在数据库连接字符串里面增加编码的定义,完整的连接字符串如下: url="jdbc:mysql://127.0.0.1:3306/anydb?useUnicode=true&characterEncoding=UTF-8" 需要注意的是:这段字符串通常是保存在一段xml结构的配置文件中,比如环境变量文件context.xml中,更完整的配置内容如下: <?xml version=&quo

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

大家经常遇到乱码问题,我一般习惯性的把编码问题归结为两种: 编码层面的乱码:指的是那些需要修改项目内的代码或配置来解决的乱码问题,比如有的时候从数据库获取的数据是乱码.发送ajax请求时,获取到的数据乱码等,这种都需要进行新增或修改适当代码或配置来解决:    非编码层面的乱码:指的是那些修改项目外在的一些东西,比如服务器编码没有设置.开发环境中没有设置编码.开发工具编码问题等原因造就的乱码: 只要是出现了乱码,从上面两个角度采用排除法,一般乱码问题都会得到解决:首先判断是否是非编码层面的乱码,

WEB应用常见中文数据乱码问题总结

在实际工作中,会遇到很多中文数据的乱码的问题,之所以会产生乱码,就是因为服务器和客户端沟通的编码不一致造成的,因此解决的办法是:在客户端和服务器之间设置一个统一的编码,之后就按照此编码进行数据的传输和接收. 1.以POST方式提交表单中文参数的乱码问题 客户端是以UTF-8字符编码将表单数据传输到服务器端,因此服务器也需要设置以UTF-8字符编码进行接收,服务器可以直接使用从ServletRequest接口继承而来的"setCharacterEncoding(charset)"方法进行

java可执行jar文件向界面输出汉字乱码问题

我编写了一个Windows向Linux传输本地文件工具,在IDE中调试时中文显示没有问题,打成jar后运行时出现了中文乱码. 解决方案: 编写一个.bat文件去运行jar文件,运行时加上参数  java -Dfile.encoding=utf-8 -jar xxxxx.jar,运行时运行批处理文件即可 原文地址:https://www.cnblogs.com/chli0729/p/11164603.html

加载依赖的jar包在命令行编译和运行java文件

在命令里编译和执行java文件,当应用程序需要需要依赖的jar包里面的class文件才能编译运行的时候,应该这样做: 1. 首先是编译过程,在命令行里面执行: (1) javac -classpath ClassPath Test.java    //其中ClassPath对应的是jar包的路径,这个jar包亦可以是zip包 (2) javac -classpath CLASSPATH:*.jar Test.java    //其中ClassPath对应的是jar包的路径,这个jar包亦可以是z

Docker Ubuntu/CentOS 下运行 java jar

官方安装方法 https://docs.docker.com/engine/installation/linux/ubuntu/ Ubuntu安装包 https://download.docker.com/linux/ubuntu/dists/xenial/pool/stable/amd64/ CentOS7安装包 https://download.docker.com/linux/centos/7/x86_64/stable/Packages/ 镜像仓库 https://hub.daoclou

将Java程序打jar包并运行

1)接着上篇博客继续说手动编译之后,将代码打成jar包,然后直接“java -jar lz.jar"运行不成功的问题.还是先上代码: 这个是Demo类: package org.lz.demo.a ; public class Demo{ public String getContent(){ return "oh,yeah,done!" ; } }; 接下来,这个是调用了Demo类的ImportDemo类,并且这两个类不在一个包中: package org.lz.demo.

(maven项目)使用java -jar命令遇到的小问题|xx.jar中没有主清单或Error:Invalid or corrupt jarfile xx.jar

xx.jar中没有主清单或Error:Invalid or corrupt jarfile xx.jar 遇到这个问题,是因为你的jar包没有设置主类的入口. 即在META-INF文件夹的MANIFEST.MF文件中没有定义Main-Class: packageName.className(此处Main-Class:与 packageName.className之间有一个空格并且一行结束后有换行符) 我们可以用winrar打开你导出jar包(不用解压),在META-INF文件夹中找到MANIFE

【Java】windows下直接运行Java程序(利用bat运行jar文件)

这种方法只是掩耳盗铃,简化了运行jar的方式.并不是将Java代码打包成了exe文件. 具体步骤为,电脑上有JRE环境,然后利用bat文件包装一下运行jar的控制台语句,最后用C语言打包成exe文件. jar包有两种运行方式,一种为直接双击,直接双击需要配置注册表和环境变量才能运行jar包. 还有一种是在控制台运行,输入javaw -jar xxxx.所有的操作都需要Java环境. bat文件 bat是Windows下可以直接运行的批处理文件,编写也很简单. 新建一个txt文件,输入下面两行脚本