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

Java中如何读取并打印文本文件中的印地语字符?

印地语字符显示异常的解决方法

一、确保文件读取时使用UTF-8编码

你仅处理了输出环节的编码,但读取文件时若未指定UTF-8,会直接导致字符解码错误。读取文件时必须明确指定编码:

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

public class ReadHindiFile {
    public static void main(String[] args) throws Exception {
        BufferedReader reader = new BufferedReader(
            new InputStreamReader(new FileInputStream("你的文件路径.txt"), StandardCharsets.UTF_8)
        );
        String line;
        while ((line = reader.readLine()) != null) {
            System.out.println(line);
        }
        reader.close();
    }
}

二、修正控制台编码配置

即便代码指定了UTF-8输出,控制台自身编码不匹配仍会显示问号:

  • IDEA/Eclipse:在运行配置中添加VM参数 -Dfile.encoding=UTF-8;或在配置的Common板块直接选择UTF-8编码。
  • Windows命令行:执行命令 chcp 65001 切换到UTF-8编码,同时将控制台字体更换为支持Unicode的类型(如Consolas、微软雅黑)。

三、给下拉框配置支持印地语的字体

下拉框显示方框,核心原因是组件使用的字体不支持印地语字符:
以Swing为例,给下拉框设置兼容印地语的字体:

import javax.swing.JComboBox;
import java.awt.Font;

public class HindiComboBox {
    public static void main(String[] args) {
        JComboBox<String> comboBox = new JComboBox<>();
        // 选择系统中已安装的印地语支持字体,比如Noto Sans Devanagari
        Font hindiFont = new Font("Noto Sans Devanagari", Font.PLAIN, 12);
        comboBox.setFont(hindiFont);
        // 添加印地语文本选项
        comboBox.addItem("कक्षा  4 रिमझिम");
        comboBox.addItem("कक्षा  5 रिमझिम");
    }
}

若系统无对应字体,可安装开源的Noto Sans Devanagari字体。

四、验证文件本身的编码格式

用Notepad++等编辑器打开文本文件,检查编码是否为UTF-8。若不是,重新以UTF-8编码保存文件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 09:52:38