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
相关产品推荐
相关产品推荐

