我不是Java开发人员。我只需要了解这个构造函数正在做什么:
x = new OutputStreamWriter(OutputStream output, "UTF-8")
x.write(some string)
我有点希望简化代码以突出我的基本问题。
文档说:
使用指定的字符集将写入其中的字符编码为字节。
这是否意味着x中的字符串现在编码为UTF-8?这会转换吗?如果传递给.write的字符串是否会转换为ISO-8859-1字符串?怎么会知道?
答案 0 :(得分:2)
这是否意味着x中的字符串现在编码为UTF-8?
没有。这意味着当writer收到一个字符串(总是在UTF-16中有效)时,它将使用指定的编码编码为字节,然后写入底层的OutputStream
。
要注意的重点是要求OutputStream
写入字节,而要求Writer
写入文本。编码指定应用于文本数据的转换,以便获取二进制数据,基本上。