如何在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:
- 执行命令切换到UTF-8编码:
chcp 65001 - 右键终端标题栏→属性→字体,选择支持阿拉伯文的字体(如
Segoe UI Arabic、Noto Naskh Arabic)。
- 执行命令切换到UTF-8编码:
- 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)
- 打开控制面板→区域→管理标签页→更改系统区域设置。
- 勾选「Beta版:使用Unicode UTF-8提供全球语言支持」,重启电脑后生效。
4. 验证配置
完成上述设置后,先在终端直接输入阿拉伯文测试显示是否正常,再运行Java代码,确认输出是否正确。
内容的提问来源于stack exchange,提问作者waroa kawa
相关产品推荐
相关产品推荐

