执行jar包输出中文乱码的解决方法
2023-09-14 09:07:37 时间
在做接口测试中遇到了一个加密的问题。一个业务线对接口进行了RSA+AES的加密。
于是写了个加密解密的小工具,来对接口参数进行分析。
过程中发现在eclipse中调试好好的,打包成jar包后再执行其中的中文就乱码了:
解决方法:在执行的时候加上 -Dfile.encoding=utf-8 参数指定编码即可。
分析:
-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 这个属性中获取的。
————————————————
版权声明:本文为CSDN博主「whorus1」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/whorus1/article/details/51518139
相关文章
- 解决idea中maven项目的pom文件不会自动下载jar包问题 + 更新不完整依赖命令
- java war包是什么_jar包和war包区别是什么?
- 【Maven学习】Maven打包生成包含所有依赖的jar包
- linux运行jar包的命令_linux部署jar包的几种方式
- 日常技巧-抓取jar包payload数据
- 【Groovy】Groovy 扩展方法 ( 静态扩展方法配置 | 扩展方法示例 | 编译静态扩展类 | 打包静态扩展类字节码到 jar 包中 | 测试使用 Thread 静态扩展类 )
- 依赖掌握 Linux 系统查看Jar包依赖的方法(linux查看jar包)
- Java axis2.jar包详解及缺少jar包错误分析编程语言
- 包Linux下修改Jar包的方法(linux修改jar)
- 应用停止Linux下Jar应用的方法(linux停止jar)
- MySQL驱动JAR包:让数据访问更加方便(mysql驱动jar)
- 包Linux下添加Jar包的技巧(linux添加jar)
- Linux下加载Jar文件的步骤(linux加载jar文件)
- Oracle 导入Jar包的正确方式(oracle导入jar)
- Linux下Jar包安装指南(Linuxjar安装)
- 初学Linux,快速启动Jar命令(linux启动jar命令)
- 快速搭建MySQL数据库:Jar包驱动方案(mysql数据库驱动jar包)
- Linux下解压Jar文件的方法(linux解压jar文件)
- Linux下轻松解压JAR文件(jarlinux解压)
- 使用SQLServer驱动JAR解决数据库连接问题(sqlserver驱动jar)
- Linux下如何设置jar包路径(linuxjar包路径)
- MS SQL连接JAR:实现相关数据库的操作(mssql 连接jar)
- Redis整合到Jar包简化开发流程(redis集成到jar)
- Oracle7 Jar包引领Java语言新技术突破(oracle7 jar包)
- jar命令的用法详解