Java 基础 - idea汉字输出乱码

server/2024/9/22 13:07:36/

在使用 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、示例代码验证

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

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

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

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

java">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 的值:

java">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.ppmy.cn/server/48052.html

相关文章

Flutter 中的 SliverFillRemaining 小部件:全面指南

Flutter 中的 SliverFillRemaining 小部件:全面指南 Flutter 是一个由 Google 开发的跨平台 UI 框架,它允许开发者使用 Dart 语言来构建高性能、美观的移动、Web 和桌面应用。在 Flutter 的丰富组件库中,SliverFillRemaining 是一个用于 Cus…

OSG天空图代码

osgEarth // 创建天空选项osgEarth::Util::SkyOptions skyOptions;// 设置天空的坐标系统(可选)skyOptions.coordinateSystem() osgEarth::Util::SkyOptions::COORDSYS_ECEF;// 设置一天中的小时数(可选)skyOptions.hours() 12.…

计算机毕业设计Python+Spark知识图谱课程推荐系统 课程预测系统 课程大数据 课程数据分析 课程大屏 mooc慕课推荐系统 大数据毕业设计

毕业设计(论文)开题报告表 课题名称 基于深度强化学习的课程推荐系统设计与实现 课题来源 自选项目 课题类型 工程设计 指导教师 赵彦锋 学生姓名 学 号 专 业 软件工程 一、课题意义 推荐系统是信息时代中解决信息过载问题的一种…

flutter 适配屏幕宽高工具

使用的是flutter插件flutter_screenutil flutter pub add flutter_screenutil 使用 void main() > runApp(MyApp());class MyApp extends StatelessWidget {overrideWidget build(BuildContext context) {//填入设计稿中设备的屏幕尺寸,单位dpreturn ScreenUtilInit(desi…

NoSQL实战(MongoDB搭建主从复制)

什么是复制集? MongoDB复制是将数据同步到多个服务器的过程; 复制集提供了数据的冗余备份并提高了数据的可用性,通常可以保证数据的安全性; 复制集还允许您从硬件故障和服务中断中恢复数据。 保障数据的安全性 数据高可用性 (2…

LlamaFactory-Ollama-Langchain大模型训练-部署一条龙

前言 近些日子,大模型火的一塌糊涂,那么现在就有义务要学习一套好用的、从 dataset --> train --> deploy 的一整套流程,好拿来装逼。话不多说,进入正题 Train 框架 目前好用的框架太多,如BELLE, ChatGLM等&a…

大模型日报2024-06-05

大模型日报 2024-06-05 大模型资讯 AI气象预测取得重大进展:单台桌面电脑即可运行全球天气模型 摘要: 一项新的人工智能天气预测模型已经取得重大进展,该模型能够在一台普通的桌面电脑上运行,预测全球天气。这意味着即使没有复杂的物理计算&a…

[Mac软件]Leech for Mac v3.2 - 轻量级mac下载工具

黑果魏叔推荐Leech是由Many Tricks开发的适用于Mac OS X的轻量级且功能强大的下载管理器。 Leech让您完全控制下载,并与浏览器完全集成。您可以将下载排队,暂停和恢复,从受密码保护的服务器下载,并将密码存储在系统范围的安全钥匙…