确定 ISO-8859-1 与 US-ASCII 字符集
Determining ISO-8859-1 vs US-ASCII charset
我正在尝试确定是否使用
PrintWriter pw = new PrintWriter(outputFilename, "ISO-8859-1");
或
PrintWriter pw = new PrintWriter(outputFilename, "US-ASCII");
我正在阅读 All about character sets 以确定我必须通过 java 代码以相同编码创建的示例文件的字符集。
当我的示例文件包含 "European" 个字母(挪威语:å ø æ)时,以下命令告诉我文件编码是 "iso-8859-1"
file -bi example.txt
但是,当我复制同一个示例文件并将其修改为包含不同的数据时,没有任何挪威语文本(比方说,我将 "Bjørn" 替换为 "Bjorn"),然后同样的命令告诉我文件编码是 "us-ascii".
file -bi example-no-european-letters.txt
这是什么意思?如果其中没有 "European" 个字符,ISO-8859-1 在实践中是否与 US-ASCII 相同?
我应该只使用一个字符集 "ISO-8559-1" 一切都会好吗?
如果文件仅包含 7 位 US-ASCII
个字符,则可以读取为 US-ASCII
。它没有说明什么是字符集。没有需要不同编码的字符可能只是巧合。
ISO-8859-1(和 -15)是一种常见的欧洲编码,能够对 äöåéü 和其他字符进行编码,前 127 个字符与 US-ASCII 相同(通常是这样,为方便起见) .
但是,您不能只选择一种编码并假设 "everything will be OK"。非常常见的 UTF-8 编码也包含 US-ASCII 字符集,但它将例如 äöå
字符编码为两个字节而不是 ISO-8859-1 的一个字节。
TL;DR:不要假设有编码的东西。找出意图并使用它。如果您找不到它,请观察数据以尝试找出要使用的正确字符集(正如您自己指出的那样,多种编码可能至少暂时有效)。
这取决于我们在各自文档中使用的不同类型的字符。 ASCII 是 7 位字符集,ISO-8859-1 是 8 位字符集,支持一些额外的字符。但是,大多数情况下,如果您要从输入流中复制文档,我推荐使用 ISO-8859-1 字符集。它适用于记事本和 MS word 等文本文件。
如果您使用一些不同的国际字符,我们需要检查支持该特定字符的相应字符集,如 UTF-8..
我正在尝试确定是否使用
PrintWriter pw = new PrintWriter(outputFilename, "ISO-8859-1");
或
PrintWriter pw = new PrintWriter(outputFilename, "US-ASCII");
我正在阅读 All about character sets 以确定我必须通过 java 代码以相同编码创建的示例文件的字符集。
当我的示例文件包含 "European" 个字母(挪威语:å ø æ)时,以下命令告诉我文件编码是 "iso-8859-1"
file -bi example.txt
但是,当我复制同一个示例文件并将其修改为包含不同的数据时,没有任何挪威语文本(比方说,我将 "Bjørn" 替换为 "Bjorn"),然后同样的命令告诉我文件编码是 "us-ascii".
file -bi example-no-european-letters.txt
这是什么意思?如果其中没有 "European" 个字符,ISO-8859-1 在实践中是否与 US-ASCII 相同?
我应该只使用一个字符集 "ISO-8559-1" 一切都会好吗?
如果文件仅包含 7 位 US-ASCII
个字符,则可以读取为 US-ASCII
。它没有说明什么是字符集。没有需要不同编码的字符可能只是巧合。
ISO-8859-1(和 -15)是一种常见的欧洲编码,能够对 äöåéü 和其他字符进行编码,前 127 个字符与 US-ASCII 相同(通常是这样,为方便起见) .
但是,您不能只选择一种编码并假设 "everything will be OK"。非常常见的 UTF-8 编码也包含 US-ASCII 字符集,但它将例如 äöå
字符编码为两个字节而不是 ISO-8859-1 的一个字节。
TL;DR:不要假设有编码的东西。找出意图并使用它。如果您找不到它,请观察数据以尝试找出要使用的正确字符集(正如您自己指出的那样,多种编码可能至少暂时有效)。
这取决于我们在各自文档中使用的不同类型的字符。 ASCII 是 7 位字符集,ISO-8859-1 是 8 位字符集,支持一些额外的字符。但是,大多数情况下,如果您要从输入流中复制文档,我推荐使用 ISO-8859-1 字符集。它适用于记事本和 MS word 等文本文件。
如果您使用一些不同的国际字符,我们需要检查支持该特定字符的相应字符集,如 UTF-8..