繁体   English   中英

在java中读取unicode字符

[英]to read unicode character in java

我试图从使用java保存在utf-8中的文本文件中读取Unicode字符我的文本文件如下

अ,अदेबानि,अन,अनसुला,अनसुलि,अनफावरि,अनजालु,अनद्ला,अमा,अर,अरगा,अरगे,अरन,अराय,अलखद,असे,अहा,अहिंसा,अग्रं,अन्थाइ,अफ्रि,बियन,खियन,फियन,बन, गन,थन,हर,हम,जम,गल,गथ,दरसे,दरनै,थनै,थथाम,सथाम,खफ,गल,गथ,मिख,जथ,जाथ,थाथ,दद,देख,न,नेथ,बर,बुंथ, बिथ,बिख,बेल,मम,आ,आइ,आउ,आगदा,आगसिर

我已尝试使用如下代码

import java.io.*;
import java.util.*;
import java.lang.*;
public class UcharRead
{
    public static void main(String args[])
    {
        try
        {
            String str;
            BufferedReader bufReader = new BufferedReader( new InputStreamReader(new FileInputStream("research_words.txt"), "UTF-8"));
            while((str=bufReader.readLine())!=null)
            {
                System.out.println(str);
            }
        }
        catch(Exception e)
        {
        }
    }
}

出去作为?????????????????????? 谁能帮我

您(很可能)正确阅读文本,但是当您将其写出时,您还需要启用UTF-8。 否则,无法以默认编码打印的每个字符都将变为问号。

尝试将其写入File而不是System.out(并指定正确的编码):

Writer w = new OutputStreamWriter(
   new FileOutputStream("x.txt"), "UTF-8");

如果您使用UTF-8编码正确阅读文本,请确保您的控制台也支持UTF-8。 如果您正在使用eclipse,那么您可以通过以下方式为您的控制台启用UTF-8编码:

Run Configuration->Common -> Encoding -> Select UTF 8

这是日食截图。

在此输入图像描述

你正确地阅读它 - 问题几乎肯定只是你的控制台无法处理文本。 验证这一点的最简单方法是打印出字符串中的每个char 例如:

public static void dumpString(String text) {
    for (int i = 0; i < text.length(); i++) {
        char c = text.charAt(i);
        System.out.printf("%c - %04x\n", c, (int) c);
    }
}

然后,您可以使用Unicode代码图表验证每个字符是否正确。

一旦你确认你正确地阅读了文件,你就可以在输出方面做事 - 但重要的是一次只关注它的一面。 尝试同时诊断输入输出编码中的潜在故障是非常困难的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM