【发布时间】:2019-03-21 03:45:42
【问题描述】:
我打开我的 Windows 记事本,输入 18,然后将文件保存为 utf-8 编码。我知道我的文件会有一个 BOM 标头,而我的文件是一个 utf-8 编码的文件(带有一个 BOM 标头)。
问题是,当通过以下代码打印该字符串时:
//str is that string read from the file using StandardCharsets.UTF_8 encoding
System.out.println(str);
在 Windows 中我得到了:
?18
但在 linux 中我得到了:
18
那么为什么java的行为不同呢?怎么理解?
【问题讨论】:
-
无论您以何种方式将文本文件内容转换为字符串,都是错误的。字符串用于文本。 BOM 是元数据。请出示代码。