Java 基础 - idea汉字输出乱码

在使用 IntelliJ IDEA 时,如果在控制台输出汉字出现乱码,通常是因为控制台的字符编码设置不正确。以下是解决这个问题的步骤:

1、设置 IDEA 控制台编码

1.1、修改 IDE 设置

  1. 打开 IntelliJ IDEA,点击 File 菜单,然后选择 Settings(或者使用快捷键 Ctrl+Alt+S)。
  2. 在设置窗口中,导航到 Editor -> File Encodings
  3. Global EncodingProject Encoding 中选择 UTF-8
  4. Properties Files 中也选择 UTF-8

1.2、修改运行配置

  1. 点击 Run 菜单,然后选择 Edit Configurations
  2. 在运行配置窗口中,选择你的运行配置。
  3. 找到 Environment 部分,在 VM options 中添加以下参数:
    -Dfile.encoding=UTF-8
  4. 点击 ApplyOK 保存设置。

2、确保 Java 文件使用 UTF-8 编码

 确保你的 Java 文件是用 UTF-8 编码保存的。可以在 IntelliJ IDEA 中检查和修改文件编码:

  1. 打开要检查的 Java 文件。
  2. 在 IntelliJ IDEA 窗口的右下角,可以看到文件的编码格式。点击编码格式标签,然后选择 UTF-8

3、示例代码验证

编写一个简单的示例代码,输出包含汉字的字符串,验证设置是否生效:

public class ChineseOutputTest {public static void main(String[] args) {System.out.println("你好,世界!");}
}

4、检查系统的字符编码设置

有时,系统的默认字符编码也会影响控制台的输出。可以在代码中添加如下代码来检查当前的字符编码设置:

public class EncodingTest {public static void main(String[] args) {System.out.println("Default Charset=" + java.nio.charset.Charset.defaultCharset());System.out.println("file.encoding=" + System.getProperty("file.encoding"));System.out.println("sun.jnu.encoding=" + System.getProperty("sun.jnu.encoding"));System.out.println("你好,世界!");}
}

5、修改操作系统的字符编码设置(可选)

在某些情况下,可能需要修改操作系统的字符编码设置,特别是当你在非 UTF-8 环境下工作时。例如,在 Windows 系统中,可以通过以下步骤修改默认字符编码:

  1. 打开 Control Panel(控制面板),选择 Region(区域)设置。
  2. Administrative(管理)选项卡中,点击 Change system locale(更改系统区域设置)。
  3. 选择 Chinese (Simplified, China),并确保勾选 Beta: Use Unicode UTF-8 for worldwide language support 选项。
  4. 重启系统以使更改生效。

6、sun.jnu.encoding是什么

sun.jnu.encoding 是一个 Java 系统属性,用于指定 Java 虚拟机(JVM)在处理文件名和路径时使用的编码。这个编码影响到文件系统操作,如读取和写入文件名、目录名等。该属性通常反映操作系统的默认字符编码,尤其是在涉及到本地文件系统的情况下。

6.1、sun.jnu.encoding 的作用

  • 文件系统操作:主要影响文件系统相关的操作,包括文件路径、文件名的编码和解码。
  • 本地化支持:帮助 JVM 在不同的操作系统环境中正确处理本地字符集。

6.2、示例代码查看 sun.jnu.encoding

你可以通过以下示例代码查看 sun.jnu.encoding 的值:

public class EncodingTest {public static void main(String[] args) {System.out.println("Default Charset=" + java.nio.charset.Charset.defaultCharset());System.out.println("file.encoding=" + System.getProperty("file.encoding"));System.out.println("sun.jnu.encoding=" + System.getProperty("sun.jnu.encoding"));}
}

运行这段代码会输出当前系统的字符编码设置,包括 file.encodingsun.jnu.encoding

Default Charset=UTF-8
file.encoding=UTF-8
sun.jnu.encoding=UTF-8

6.3、调整 sun.jnu.encoding

如果需要更改 sun.jnu.encoding,可以在 JVM 启动时通过添加系统属性参数来进行设置。例如:

java -Dsun.jnu.encoding=UTF-8 YourClassName

 在 IntelliJ IDEA 中,可以在运行配置中添加该 JVM 参数:

  1. 打开 Run 菜单,然后选择 Edit Configurations
  2. 选择你的运行配置。
  3. VM options 中添加以下参数:
    -Dsun.jnu.encoding=UTF-8

sun.jnu.encoding 是 Java 虚拟机处理文件系统编码的重要属性。确保该属性与系统的实际编码设置一致,可以避免文件名和路径处理中的乱码问题。通过设置 -Dsun.jnu.encoding=UTF-8,可以强制 JVM 使用 UTF-8 编码处理文件系统操作。

常见问题

  • 控制台输出乱码:如果控制台输出乱码,通常不仅要设置 file.encodingUTF-8,还需要确保 sun.jnu.encoding 设置为 UTF-8
  • 文件路径处理问题:如果处理文件路径或文件名时出现乱码,可能是 sun.jnu.encoding 设置不正确。

通过以上步骤,应该可以解决 IntelliJ IDEA 控制台输出汉字乱码的问题。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/23109.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Next React

最新版的next在安装的时候&#xff0c;已经集成了React,不需要在单文件头部单独引入React,可以直接使用React语法。 一&#xff1a;路由跳转 import Link from next/link<Link href"/pathA">测试</Link> 最新版本的next中的Link 不需要在Link下一级使…

MySQL的联合索引及案例分析

1. 联合索引 关于联合索引的详解参考博客【Mysql-----联合索引和最左匹配】&#xff0c;包含讲解 最左匹配 联合索引失效的情况 不遵循最左匹配原则范围查询右边失效原理like索引失效原理 比较关注的点在于&#xff1a; 对A、B、C三个字段创建一个联合索引&#xff08;A, …

在线建站流程分析

建站流程是指通过互联网创建一个个人或企业网站的过程。随着互联网的发展&#xff0c;越来越多的人和机构开始意识到网络的重要性&#xff0c;建站成为一种常见的行为。在线建站的流程一般包括以下几个步骤。 首先&#xff0c;选择一个合适的建站平台。目前&#xff0c;有很多在…

前端逆向之查看接口调用栈

一、来源 再分析前端请求接口数据的时候&#xff0c;其中有一个sid不知道是前端如何获取的&#xff0c;一般情况下只需要全局搜搜sid这个字符串或者请求接口的名称就可以了&#xff0c;基本都能找到sid的来源&#xff0c;但是今天这个不一样&#xff0c;搜什么都搜不到 接口地…

面试题------>MySQL!!!

一、连接查询 ①&#xff1a;左连接left join &#xff08;小表在左&#xff0c;大表在右&#xff09; ②&#xff1a;右连接right join&#xff08;小表在右&#xff0c;大表在左&#xff09; 二、聚合函数 SQL 中提供的聚合函数可以用来统计、求和、求最值等等 COUNT&…

Python连接数据库进行数据查询

Python连接数据库进行数据查询 mysql数据库&#xff08;mariadb&#xff09;连接数据库创建Cursor对象模块安装代码 Oracle数据库连接数据库模块安装代码 SQL server数据库连接数据库模块安装代码 mysql数据库&#xff08;mariadb&#xff09; 连接数据库 首先&#xff0c;你…

AI论文工具推荐

AI 在学术界的使用情况也比较疯狂&#xff0c;特别是一些美国大学&#xff0c;用 AI 来辅助阅读文献以及辅助写论文的越来越多&#xff0c;毕竟确实可以提高写作效率&#xff0c;特别是在文献综述和初稿生成方面。 但在科研界其实&#xff0c;发现看论文的速度已经赶不上发论文…

发现 Laravel 中的 api 响应时间明显过长

背景 近期在排查网站后台页面功能时 发现&#xff0c;部分查询页面&#xff0c;明显响应时间过长&#xff08;12秒&#xff09;&#xff0c;不合理 优先排查 接口运行时长 经过打印&#xff0c;发现代码是正常的&#xff0c;且时间仅需不到一秒 进一步怀疑是 VUE框架的渲染加载…

“粘土风格”轻松拿捏,基于函数计算部署 ComfyUI实现AI生图

阿里云函数计算 FC 一键部署火爆全球工作流 AI 生图平台—— ComfyUI &#xff0c;实现更高质量的图像生成&#xff0c;三步轻松完成“黏土”创意AI画作&#xff0c;晒图赢眼部按摩器等好礼&#xff01; 活动地址&#xff1a; https://developer.aliyun.com/topic/june/fcspma…

编写备份MySQL 脚本

目录 环境准备 增量备份 增量备份和差异备份 完整代码如下 测试脚本是否正常 星期天运行脚本&#xff08;完全备份&#xff09; 星期一运备份脚本&#xff08;增量备份&#xff09; 星期二备份数据&#xff08;其他天--增量备份&#xff09; 星期三备份数据&#xff08;差异备…

最大连续1 的个数Ⅲ(滑动窗口)

题目&#xff1a; 给定一个二进制数组 nums 和一个整数 k&#xff0c;如果可以翻转最多 k 个 0 &#xff0c;则返回 数组中连续 1 的最大个数 。 首先&#xff0c;我们需要了解题干的意思&#xff1a;我们需要将给定的一个只有 0 和 1 的数组&#xff0c;最多将其中 k 个0改变…

EVASH vs. ATMEL vs. ST EEPROM 对比型号

EVASH vs. ATMEL vs. ST EEPROM 对比 型号对比 益华世ATMELSTEV24C128AAT24C128M24128EV24C256AAT24C256M24256EV24C512AAT24C512M24512 优势和劣势对比 品牌优势劣势EVASH- 供应链稳定性: 新兴品牌&#xff0c;可能在芯片市场紧缺的情况下提供较为稳定的供应。<br>- …

【强烈推荐】四元数与三维旋转

目录 1 强烈推荐讲解四元数与三维旋转的这篇文章&#xff0c;深入浅出2 笔记2.1 复数2.1.1 复数的定义2.1.2 复数的乘法与二维旋转 2.2 三维空间中的旋转2.2.1 角轴2.2.2 旋转的分解 2.3 四元数2.3.1 四元数的定义2.3.2 四元数的乘法2.3.3 四元数与三维旋转2.3.4 三维旋转的矩阵…

selenium自动化测试入门:下拉框元素定位

&#x1f345; 视频学习&#xff1a;文末有免费的配套视频可观看 &#x1f345; 点击文末小卡片 &#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 选择获取反选下拉框元素首先要实例化select元素 from selenium.webdriver.support.ui import S…

数字影像产业园的三大赋能:科技、创新与无限可能

数字影像产业园作为文创产业的重要载体&#xff0c;以科技为核心驱动力&#xff0c;不断推动产业的技术革新和升级。 园区内汇聚了最前沿的数字技术资源&#xff0c;高清摄影设备、虚拟现实技术、人工智能应用等尖端科技在这里得到广泛应用&#xff0c;不仅提升了生产效率&…

能源SCI期刊,中科院4区,审稿快,IF=3.858

一、期刊名称 Frontiers in Energy Research 二、期刊简介概况 期刊类型&#xff1a;SCI 学科领域&#xff1a;能源 影响因子&#xff1a;3.858 中科院分区&#xff1a;4区 三、期刊征稿范围 能源研究前沿出版了整个领域的严格同行评审研究&#xff0c;重点是可持续和环境…

java多线程原理

1.线程创建与启动&#xff1a;通过继承Thread类或实现Runnable接口创建线程&#xff0c;并调用start()方法启动线程。 1.线程状态&#xff1a;线程在其生命周期中有多种状态&#xff0c;包括新建、运行、阻塞、死亡等。了解这些状态以及如何在它们之间转换对于管理线程至关重要…

ICLR 2024 BACKDOOR FEDERATED LEARNING BY POISONING BACKDOOR-CRITICAL LAYERS

寻找后门攻击最有效的网络层。现有的 FL 攻击和防御方法通常关注整个模型。 他们都没有认识到后门关键&#xff08;BC&#xff09;层的存在——控制模型漏洞的一小部分层。 攻击 BC 层可达到与攻击整个模型相同的效果&#xff0c;但被最先进 (SOTA) 防御检测到的机会要小得多。…

如何卸载360安全卫士

不用像其他教程那么复杂 这篇教程比较友好 1.打开桌面&#xff0c;右键单击快捷方式 选择“打开文件位置” 2.然后&#xff0c;搜uninst.exe 3.运行 4.选择“继续卸载” 5.选择“下一步” 6.选择 “继续卸载” 7.选择“继续卸载” 8.选择“是” 9.静等卸载 10.把卸载程序关…

【因果推断python】16_工具变量2

目录 出生季度和教育对工资的影响 第一阶段 出生季度和教育对工资的影响 到目前为止&#xff0c;我们一直将这些工具视为一些神奇的变量 Z&#xff0c;它们具有仅通过干预变量影响结果的神奇特性。老实说&#xff0c;好的工具变量来之不易&#xff0c;我们不妨将它们视为奇迹…