解决IBM JDK File Encoding设置为UTF-8后控制台输出中文乱码问题_fileencoding=utf-8-程序员宅基地

技术标签: IBM JDK  UTF-8  乱码  

 

背景:

由于Oracle宣布将对JDK进行收费,所以许多客户转而使用IBM JDK。笔者使用IBM JDK时,遇到一个控制台中文显示乱码的问题,而切换为Oracle 的JDK则没有该问题。由于笔者使用的编码全部设置为UTF-8。百度网上的方法,但都没有正确解决。

 

以下是网上介绍的方法:

一:设置所有文件都是UTF-8编码。

具体:左上角:File-->settings-->Editor-->File Encodings 将所有编码都设置为UTF-8模式

二:修改idea配置文件

IDEA安装目录,将2idea64.exe.vmoptionsidea.exe.vmoptions文件,追加:-Dfile.encoding=UTF-8

 

原因分析:

所以,笔者认为问题的本质不正确,于是联想到是否是JVM的参数不一样导致。果然,找到根本原因。

用Oracle JDK打印出来的系统参数如下:

java.runtime.name : Java(TM) SE Runtime Environment

sun.boot.library.path : D:\jdk1.8_x64\jre\bin

java.vm.version : 25.131-b11

java.vm.vendor : Oracle Corporation

java.vendor.url : http://java.oracle.com/

path.separator : ;

java.vm.name : Java HotSpot(TM) 64-Bit Server VM

file.encoding.pkg : sun.io

user.country : CN

user.script :

sun.java.launcher : SUN_STANDARD

sun.os.patch.level :

java.vm.specification.name : Java Virtual Machine Specification

user.dir : F:\FEEL_View_and_Distribution\FEELView6.2\Trunk\Src\iManager\iCon\feelview-parent\feel-code-generator

java.runtime.version : 1.8.0_131-b11

java.awt.graphicsenv : sun.awt.Win32GraphicsEnvironment

 

 

使用IBM JDK打印出来的系统参数如下:

java.runtime.name : Java(TM) SE Runtime Environment

sun.boot.library.path : D:\ibm_jdk1.8_x64\jre\bin\compressedrefs;D:\ibm_jdk1.8_x64\jre\bin

ibm.signalhandling.rs : false

 

java.vm.version : 2.8

com.ibm.oti.configuration : scar

java.vm.vendor : IBM Corporation

java.vendor.url : http://www.ibm.com/

path.separator : ;

java.vm.name : IBM J9 VM

file.encoding.pkg : sun.io

user.country : CN

sun.java.launcher : SUN_STANDARD

console.encoding : MS936

 

注意到红色部分的参数,于是笔者对于IBM JDK尝试修改为UTF-8,结果果然解决了乱码的问题。笔者又联想Oracle JDK是否不会使用console.encoding这个参数。于是在Oracle JDK下,同样配置这个参数,也没有乱码,验证了笔者的猜想。

 

 

结论:

  1. 对于 直接通过.bat或者.cmd直接启动JVM的程序,修改console.encoding参数。例如

Java -jar  -Dconsole.encoding=UTF-8  XXX.jar

  1. 对于Idea,可以临时增加参数: -Dconsole.encoding=UTF-8。

 

 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/zonelza3/article/details/103436220

智能推荐

LINUXE下执行php 定时任务-程序员宅基地

文章浏览阅读39次。linuxtest.php<?php $fn='/home/root.adminssh/boz/logs';$data=rand(1,9999);$fp=fopen($fn,'wb');fwrite($fp,$data);fclose();?>linux下执行命令/usr/bin/php -f ./test.php转载...

shell 变量匹配-程序员宅基地

文章浏览阅读546次。${var%pattern}${var%%pattern}${var#pattern}${var##pattern}${var%pattern},${var%%pattern} 从右边开始匹配${var#pattern},${var##pattern} 从左边开始匹配${var%pattern} ,${var#pattern} 表示最短匹配,匹配到就停止,非贪婪..._shell匹配tag的变量怎么写

运行shap模型时,出现Visualization omitted, Javascript library not loaded! Have you run `initjs()`-程序员宅基地

文章浏览阅读715次,点赞14次,收藏9次。【代码】运行shap模型时,出现Visualization omitted, Javascript library not loaded!_visualization omitted, javascript library not loaded! have you run `initjs()

Base64编码转为文件_将base64编码变成.7z文件-程序员宅基地

文章浏览阅读505次,点赞3次,收藏3次。在JavaScript中,将Base64编码的字符串转换为文件通常涉及几个步骤。这通常涉及到创建一个Blob对象,然后使用这个Blob对象来创建一个文件。File对象通常用于表示用户选择的文件,但也可以在这里用来表示从Base64字符串创建的文件。// 你的Base64字符串。// 现在你可以使用这个文件对象,比如通过表单上传,或者通过URL.createObjectURL来预览图片等。方法,你可以创建一个指向Blob或File对象的URL,这个URL可以直接用于在。// 示例:创建图片的URL。_将base64编码变成.7z文件

基于 OpenCV 的图像处理与分析应用的设计与实现_具有图像分析设计开发-程序员宅基地

文章浏览阅读1.8k次。图像处理与分析是计算机视觉中的重要应用领域,通过对图像进行处理和分析,可以提取有用的信息和特征,用于解决实际问题。 OpenCV 是一个强大的开源计算机视觉库,提供了丰富的功能和算法,适用于各种图像处理和分析任务。本文将以设计和实现一个基于 OpenCV 的图像处理与分析应用为中心,为你介绍构建这样一个应用的基本原理、方法和实例。_具有图像分析设计开发

ASR6501模组Cortex-M0+ SX1262 PSoC+LoRaWAN节点模块 CubeCell系列AT指令中文手册_sx1262中文手册-程序员宅基地

文章浏览阅读2.2k次。CubeCell系列AT指令中文手册0.版权声明1.摘要2.串口设置3. AT指令语法3.1语法概述3.2 AT指令集基础控制指令(括号中为译者注释,并不会显示)用户AT指令用户AT指令执行逻辑“ 普通LoRa模式”专有指令设置LoRa监听/发送参数接收模式接收数据输出模式选择LoRaWAN模式专有指令设置 DevEui设置 AppEui设置AppKey设置NwkSKey设置 AppSKey设置 DevAddr设置 OTAA / ABP mode配置ADR配置LoRaWAN通道掩码触发OTAA访问设置通讯周_sx1262中文手册

随便推点

T168_Debug222\appl\Barcode\Two\DataMatrix文件:IDMXORPK.C-程序员宅基地

文章浏览阅读933次,点赞26次,收藏22次。* None *//* None *//* None *//* None *//* None *//* None */#else#endif#endiffor (;count-- )#endif#else#endif#endiffor (;count-- )#endif。

Springcloud:. yaml.snakeyaml.scanner.ScannerException: while scanning for the next token found char-程序员宅基地

文章浏览阅读587次。Caused by: org.yaml.snakeyaml.scanner.ScannerException: while scanning for the next token found character '@' that cannot start any token. (Do not use @ for indentation)_canner.scannerexception: while scanning for the next token found character

C语言带你从实现一个通讯录开始,由“静态版”——>“动态内存版”——>“文件操作版“的万字超级详细分享,从此熟练掌握和运用基本的数组,指针,结构体, 动态内存管理和文件操作!_创建通讯录;在通讯录上实现:查找、增加、删除、修改和打印输出通讯录中所有元素等-程序员宅基地

文章浏览阅读8.1k次,点赞31次,收藏13次。如果你对独立完成一个C语言小程序还毫无头绪,那这篇文章将我将手把手和你一起完成一个通讯录项目,其中包括数组,自定义函数,结构体,指针,动态内存管理和C语言文件操作的结合应用,保姆级教学,超万字的全站最详细教程,简直不要太好,而且每部分知识点可单独任君挑选食用,走过路过,不要错过了呦!_创建通讯录;在通讯录上实现:查找、增加、删除、修改和打印输出通讯录中所有元素等

电磁场第二章公式总结_线电荷密度与电场强度公式-程序员宅基地

文章浏览阅读2.9k次,点赞3次,收藏20次。1.电荷计算公式根据电荷密度的定义,如果已知某空间区域V中的电荷体密度,则区域V中的总电量q为q=∫Vρ(r⃗)dVq=\int_{V}\rho(\vec{r})dVq=∫V​ρ(r)dV如果已知某空间曲面S上的电荷面密度,则该曲面上的总电量q 为q=∫SρS(r⃗)dSq=\int_{S}\rho_S(\vec{r})dSq=∫S​ρS​(r)dS如果已知某空间曲线上的电荷线密度,则该..._线电荷密度与电场强度公式

鼠标右击没有新建WORD、EXCEL、PPT选项卡解决方案_win11右键新建没有ppt-程序员宅基地

文章浏览阅读1.5k次。鼠标右击没有新建WORD、EXCEL、PPT选项卡解决方案_win11右键新建没有ppt

推荐文章

热门文章

相关标签