You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Java中正确打印阿拉伯文本?终端乱码问题求解

解决Java打印阿拉伯文终端乱码问题

问题场景

使用Java代码打印阿拉伯文本:

System.out.println("طباعة نص باللغة العربية");

终端输出乱码:

╪╚╟┌╔ غ╒ ╚╟طط█╔ ╟ط┌╤╚و╔

直接在终端输入阿拉伯文也显示异常,已尝试UTF-8、UTF-8 with BOM、Windows1256编码,修改过VSCode的settings.json,使用VSCode 1.68.1和JDK 17.0.4,仍无法正常显示原始文本:طباعة نص باللغة العربية

解决方案

1. 修复终端编码与字体支持

终端直接输入阿拉伯文乱码,说明终端本身不支持阿拉伯文的字符渲染,优先解决终端配置:

  • Windows CMD/PowerShell:
    1. 执行命令切换到UTF-8编码:
      chcp 65001
      
    2. 右键终端标题栏→属性→字体,选择支持阿拉伯文的字体(如Segoe UI Arabic、Noto Naskh Arabic)。
  • VSCode内置终端:
    在settings.json中添加/修改以下配置:
    "terminal.integrated.encoding": "utf8",
    "terminal.integrated.fontFamily": "Segoe UI Arabic, Noto Naskh Arabic",
    "terminal.integrated.defaultProfile.windows": "PowerShell" // 或你使用的终端类型
    

2. 配置Java运行时编码

在VSCode的launch.json中添加VM参数,强制Java使用UTF-8输出:

{
  "configurations": [
    {
      "type": "java",
      "name": "Launch Current File",
      "request": "launch",
      "mainClass": "${file}",
      "vmArgs": "-Dfile.encoding=UTF-8"
    }
  ]
}

3. 系统区域设置调整(Windows)

  1. 打开控制面板→区域→管理标签页→更改系统区域设置。
  2. 勾选「Beta版:使用Unicode UTF-8提供全球语言支持」,重启电脑后生效。

4. 验证配置

完成上述设置后,先在终端直接输入阿拉伯文测试显示是否正常,再运行Java代码,确认输出是否正确。

内容的提问来源于stack exchange,提问作者waroa kawa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 16:31:33