Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/395.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 字符流。处理的数据是16位Unicode字符。这是真的吗?_Java_Unicode_Utf 8_Io - Fatal编程技术网

Java 字符流。处理的数据是16位Unicode字符。这是真的吗?

Java 字符流。处理的数据是16位Unicode字符。这是真的吗?,java,unicode,utf-8,io,Java,Unicode,Utf 8,Io,最近我读了一些相关的话题 现在我正在阅读这本书,并阅读了以下关于字符流的内容: 处理的数据是16位Unicode字符 据我所知,“16位Unicode字符”是指utf-16。如果我没有显式地设置编码,那么java使用默认的OS编码,但我可以使用InputStreamReader/OutputStreamWriter显式地设置编码 我不明白处理的数据是16位Unicode字符。关于字符流是不正确的?计算机只知道1和0。指定编码是告诉JVM如何“解释”或“解密”1和0的方式。如果您在UTF 8数据的

最近我读了一些相关的话题

现在我正在阅读这本书,并阅读了以下关于字符流的内容:

处理的数据是16位Unicode字符

据我所知,“16位Unicode字符”是指utf-16。如果我没有显式地设置编码,那么java使用默认的OS编码,但我可以使用InputStreamReader/OutputStreamWriter显式地设置编码


我不明白处理的数据是16位Unicode字符。关于字符流是不正确的?

计算机只知道1和0。指定编码是告诉JVM如何“解释”或“解密”1和0的方式。如果您在UTF 8数据的输入流上使用UTF-16编码,您的“解密”算法显然与“加密”算法不匹配,并且您会得到到处都是有趣的字符

“处理的数据为16位Unicode字符”表示数据为16位−位代码单位。每个单元要么是代理代码单元,要么代表基本多语言平面(BMP)中的一个字符,范围在U+0000到U+FFFF之间。代理代码单元本身并不代表任何东西;只有一对代理代码单元才有意义,表示BMP之外的字符

所以“字符”根本不一定是字符,尽管我们可以将它们称为“Java字符”

比如说,当你阅读UTF时−8编码的文件,您应该使用例程为您解释UTF-8编码的数据并产生16位代码单元。

“16位Unicode字符”是Java
字符的冗余同义词。char是一个无符号的16位值,正如您所猜测的,char序列是一个UTF-16编码的字符串

短语“处理的数据是16位Unicode字符”指的是一个或仅读取或写入字符值(或包含字符值的整数)


当代码使用读写器时,编码不是一个考虑因素,因为它只适用于char值。正如您所说,只有当您正在创建一个封装InputStream或OutputStream的读卡器或写卡器时,编码才起作用。特别是在创建InputStreamReader或OutputStreamWriter时。

mmm我无法理解您的意思