java - OutputStreamWriter构造函数: how does the encoding work?

标签 java encoding

我不是 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/

相关文章:

node.js - 从 Node 读取 pdf 并将其发送到客户端 - 空白页

java - 在 libgdx 游戏中设置延迟

java - 如何在不下载 Google Cloud Java SDK(不在 App Engine 上)的情况下对服务帐户进行身份验证

java - 无法获取每次创建对象时生成的随机数

windows - 将 Subversion 提交消息转换为 Unicode

php - 在 PHP 中混淆或加密一些纯文本数据

Java和C++按值传递和按引用传递

java - 剖析规范 Play Framework webapp 最佳实践

java - GET请求参数的字符编码

grails - Groovy确定字节数组编码