1

我正在尝试使用以下代码使用 java 解析 US7ASCII 文件:

FileInputStream fileInputStream = new FileInputStream(file); 
InputStreamReader inputStreamReader = new InputStreamReader(fileInputStream, charSetName);

在第 2 行,第二个参数是我需要传递字符集名称的字符集名称。

Java 支持的字符集在以下链接中提供: https ://docs.oracle.com/javase/8/docs/technotes/guides/intl/encoding.doc.html

在那里我找不到任何 US7ASCII 条目。有人可以帮我确定我应该为 US7ASCII 编码文件传递什么字符集名称。

4

1 回答 1

1

您应该使用“US-ASCII”,但“ISO-8859-1”或“UTF-8”可能还有一些编码也可以。

名称为“US-ASCII”的 Java 字符集/编码被定义为

“七位 ASCII,又名 ISO646-US,又名 Unicode 字符集的基本拉丁语块。”

请参阅.java 文档Charset

“ISO-8859-1”的前 128 位代码与 7 位 ASCII 代码相同。虽然“UTF-8”是一种可变长度编码,但前 128 个代码与 7 位 ASCII 代码相同。这意味着它们可以用于读取正确的 7 位 ASCII 文件;即仅包含 7 位代码的那些。(但如果有杂散的 8 位代码,可能会出现问题;即 128 到 255 范围内的字节。)

于 2021-08-24T09:14:55.360 回答