我不是 Java 开发人员。我只需要了解这个构造函数在做什么:
x = new OutputStreamWriter(OutputStream output, "UTF-8")
x.write(some string)
我稍微简化了代码,希望能突出我的基本问题。
文档说:
Characters written to it are encoded into bytes using a specified charset.
这是否意味着 x 中的字符串现在已编码为 UTF-8?这个可以做转换吗?如果传递给 .write 的字符串是 ISO-8859-1 字符串,它会被转换吗?它怎么知道?
最佳答案
Does this mean that the string in x is now encoded into UTF-8?
没有。这意味着当编写器收到一个字符串(始终有效地采用 UTF-16 格式)时,它会使用指定的编码编码为字节,然后写入底层的 OutputStream
.
需要注意的重要一点是,OutputStream
被要求写入字节,而 Writer
被要求写入文本。基本上,编码指定应用于文本数据的转换以获得二进制数据。
关于java - OutputStreamWriter构造函数: how does the encoding work?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20661703/