Java 字符流。处理的数据是16位Unicode字符。这是真的吗?
最近我读了一些相关的话题 现在我正在阅读这本书,并阅读了以下关于字符流的内容: 处理的数据是16位Unicode字符 据我所知,“16位Unicode字符”是指utf-16。如果我没有显式地设置编码,那么java使用默认的OS编码,但我可以使用InputStreamReader/OutputStreamWriter显式地设置编码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字符。关于字符流是不正确的?计算机只知道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我无法理解您的意思