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

使用Java处理阿拉伯语文本文件:IntelliJ输出乱码问题

解决Java(IntelliJ)中阿拉伯语文本输出/读取乱码问题

嘿,我之前也踩过阿拉伯语输出乱码的坑,大概率是编码格式不匹配在搞事情!咱们一步步来解决:

一、先搞定控制台直接输出的问题

你直接打印System.out.println("أهلا يا عالم");都乱码,核心原因是IntelliJ的控制台默认编码可能不是UTF-8(阿拉伯语需要UTF-8才能正确显示)。

解决步骤:

  • 打开IntelliJ的设置:File → Settings → Editor → File Encodings
  • 把以下选项全部改成UTF-8:
    • Global Encoding
    • Project Encoding
    • Default encoding for properties files
    • 别忘了最下面的Console Encoding也要设为UTF-8
  • 重启一下项目,让设置生效

如果还是有问题,可以在代码开头显式指定控制台输出编码:

try {
    System.setOut(new PrintStream(System.out, true, "UTF-8"));
} catch (UnsupportedEncodingException e) {
    e.printStackTrace();
}

二、解决读取阿拉伯语文件的问题

你原来的代码里用了InputStreamReader但没指定编码,它会默认用系统的编码(比如Windows默认是GBK/mbcs),这肯定读不对UTF-8的阿拉伯语文件。

修改代码,显式指定UTF-8编码读取:

// 替换原来的Reader初始化代码
Reader fileReader = new InputStreamReader(new FileInputStream(fileName), StandardCharsets.UTF_8);

另外,一定要确保你的myFile.txt文件本身是用UTF-8编码保存的!如果文件是用其他编码(比如ANSI)存的,就算代码改对了也会乱码。你可以用IntelliJ打开文件,看右下角的编码标识,不对的话右键文件选择File Encodings转成UTF-8。

完整的示例代码

import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintStream;
import java.nio.charset.StandardCharsets;

public class ArabicTextHandler {
    public static void main(String[] args) {
        // 确保控制台UTF-8输出
        try {
            System.setOut(new PrintStream(System.out, true, "UTF-8"));
        } catch (IOException e) {
            e.printStackTrace();
        }

        // 直接打印阿拉伯语测试
        System.out.println("أهلا يا عالم");

        String fileName = "myFile.txt";
        // 使用UTF-8编码读取文件
        try (BufferedReader reader = new BufferedReader(
                new InputStreamReader(new FileInputStream(fileName), StandardCharsets.UTF_8))) {
            String line;
            while ((line = reader.readLine()) != null) {
                System.out.println(line);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

按这个流程走,应该就能正常显示阿拉伯语了!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 07:13:54