OutputStreamWriter构造函数:编码如何工作?

时间:2013-12-18 15:11:11

标签: java encoding

我不是Java开发人员。我只需要了解这个构造函数正在做什么:

x = new OutputStreamWriter(OutputStream output, "UTF-8") 
x.write(some string)

我有点希望简化代码以突出我的基本问题。

文档说:

  

使用指定的字符集将写入其中的字符编码为字节。

这是否意味着x中的字符串现在编码为UTF-8?这会转换吗?如果传递给.write的字符串是否会转换为ISO-8859-1字符串?怎么会知道?

1 个答案:

答案 0 :(得分:2)

  

这是否意味着x中的字符串现在编码为UTF-8?

没有。这意味着当writer收到一个字符串(总是在UTF-16中有效)时,它将使用指定的编码编码为字节,然后写入底层的OutputStream

要注意的重点是要求OutputStream写入字节,而要求Writer写入文本。编码指定应用于文本数据的转换,以便获取二进制数据,基本上。