Charset.forName()无法解析符号“CP-437”。我如何使用这个Charset?

时间:2016-02-01 10:56:37

标签: java character-encoding inputstream

我正在为我从客户处获得的txt文件编写解析器。显然我正在使用的字符集不正确,因为某些字符没有正确显示。

我尝试了file -I file.txt,但我得到file.txt: text/plain; charset=unknown-8bit

我在编辑器上尝试了不同的字符集设置,并且 DOS(CP 437)一切看起来都不错。

所以我尝试使用此charset读取文件,但在使用

时出现错误“无法解析符号”
Charset.forName("CP-437")

(java.nio.charset.Charset中)

我也尝试了不同的拼写但到目前为止没有任何效果。关于如何解决这个问题的任何想法?

2 个答案:

答案 0 :(得分:3)

答案有点像这样:

public class Charsets {    
    public static void main(String[] args) {
        SortedMap<String, Charset> x = Charset.availableCharsets();
        System.out.println(x);
        System.out.println(x.containsKey("CP-437"));
    }   
}

答案 1 :(得分:2)

您可以使用IBM437(适用于nio个套餐),所以:

Charset.forName("IBM437");

请查看此链接以获取支持的编码:

Supported Encodings

相关问题