读取unicode * .txt文件?

时间:2011-08-31 16:00:28

标签: java android

目前我正在使用

阅读.txt文件
    FileInputStream is = new FileInputStream(masterPath+txt);
    BufferedReader br = new BufferedReader(new InputStreamReader(is));

    String readLine = null;

        while ((readLine = br.readLine()) != null) 
        {
        ...

但是unicode字符不会出现。

如何改变上面的代码,让unicode工作?

谢谢!

3 个答案:

答案 0 :(得分:6)

是。在构造InputStreamReader时指定适当的编码。如果您的文件是UTF-8编码,请使用

new BufferedReader(new InputStreamReader(is, "UTF-8"));

答案 1 :(得分:2)

普通InputStreamReader构造函数将假定该文件具有系统的“默认编码”。因为它是相当不可预测的,除了玩具示例之外,不应使用此构造函数。使用允许您明确指定编码的双参数构造函数之一。

顺便说一句,“Unicode”不足以说明您要阅读的文件中的内容。 Unicode本身定义了如何将数字(“代码点”)分配给字符,而不是如何将这些数字打包成文件中的字节,这是“编码”的工作。实际上,您的编码可能是UTF-8或UTF-16或某些字节顺序。

答案 2 :(得分:1)

也许你的文件不是unicode编码的,或者你显示它的方式不符合unicode(Windows cmd.exe,我在看你)。