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

Java程序阿拉伯语显示乱码及Scanner输入存为问号问题求助

解决VSCode中Java阿拉伯语显示乱码及Scanner读取异常问题

针对你遇到的阿拉伯语显示乱码、Scanner读取输入变为问号的问题,可按以下步骤逐一排查解决:

1. 配置VSCode终端编码为UTF-8

  • 打开VSCode设置(快捷键Ctrl+,),搜索terminal.integrated.env.windows(Windows系统)或对应系统的终端环境变量设置,添加键值对:"CHCP": "65001",强制终端使用UTF-8编码。
  • 若使用Windows CMD终端,可额外右键终端标题栏→属性→字体,选择支持UTF-8的字体(如Consolas)。

2. 给Java运行添加编码VM参数

  • 打开VSCode的launch.json文件(运行和调试面板点击齿轮图标进入),在对应启动配置的vmArgs中添加编码参数:
    {
        "version": "0.2.0",
        "configurations": [
            {
                "type": "java",
                "name": "Launch arabicInputs",
                "request": "launch",
                "mainClass": "arabicInputs",
                "vmArgs": "-Dfile.encoding=UTF-8 -Dconsole.encoding=UTF-8"
            }
        ]
    }
    

3. 优化Scanner初始化方式

  • 替换原有Scanner初始化代码,用InputStreamReader明确指定UTF-8编码,避免系统编码干扰:
    import java.util.Scanner;
    import java.io.InputStreamReader;
    import java.nio.charset.StandardCharsets;
    
    class arabicInputs{
        public static void main ( String [] args){
    
            String name1 = "بسم الله";
            System.out.print(name1);
    
            System.out.print("Enter your name: ");
            Scanner input = new Scanner(new InputStreamReader(System.in, StandardCharsets.UTF_8));
    
            name1 = input.nextLine() ;
    
            System.out.println(name1);
        }
    }
    

4. 确保Java文件编码为UTF-8

  • 查看VSCode右下角状态栏的文件编码标识,点击后选择UTF-8,若提示转换,选择通过编码保存将文件转为UTF-8格式。

完成以上设置后,重新编译运行程序,阿拉伯语的显示和输入读取即可恢复正常。

内容的提问来源于stack exchange,提问作者ABD ALRAHMAN ALASSAF

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 04:44:54