gpt4 book ai didi

java - 如何在用 Java 读/写时强制使用 UTF-16?

转载 作者:搜寻专家 更新时间:2023-10-31 19:29:04 24 4
gpt4 key购买 nike

我看到您可以通过 Charset.forName("UTF-16") 将 UTF-16 指定为字符集, 你可以通过 Charset.forName("UTF-16").newDecoder() 创建一个新的 UTF-16 解码器, 但我只能看到指定 CharsetDecoder 的能力在 InputStreamReader的构造函数。

如何在 Java 中读取任何流时指定使用 UTF-16?

最佳答案

输入流处理原始字节。当您直接从输入流中读取时,您得到的只是与字符集无关的原始字节。

根据定义,将原始字节解释为字符需要某种翻译:如何将原始字节转换为可读字符串?该“翻译”以字符集的形式出现。

这个“添加的”层是由 Readers 实现的。因此,要从流中读取字符(而不是字节),您需要在流之上构造某种类型的 Reader(取决于您的需要)。例如:

InputStream is = ...;
Reader reader = new InputStreamReader(is, Charset.forName("UTF-16"));

这将导致 reader.read() 使用您指定的字符集读取字符。如果您想阅读整行,请在顶部使用 BufferedReader:

BufferedReader reader = new BufferedReader(new InputStreamReader(is, Charset.forName("UTF-16")));
String line = reader.readLine();

关于java - 如何在用 Java 读/写时强制使用 UTF-16?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15098186/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com