不知道是不是64位系统问题,我这边显示当使用WriteUTF输入“中国”汉字时,内存中对应的ASC码值为 00 06 e4 b8 ad e5 9b bd ,总共占8字节。 我测试方法为: dos.write('A'); dos.writeUTF("中国"); dos.write('A'); dos.writeChars("中国"); dos.write('A');
老师没有讲错,在UTF-8编码中,非英文的大部分字符占用3个字节。
wrteUTF()方法输出的UTF-8编码是“以与机器无关方式使用 UTF-8 修改版编码 将一个字符串写入基础输出流。”
首先,通过 writeShort 方法将两个字节写入输出流,表示后跟的字节数。该值是实际写出的字节数,不是字符串的长度。
根据此长度,使用字符的 UTF-8 修改版编码按顺序输出字符串的每个字符。
如果没有抛出异常,则计数器 written 增加写入输出流的字节总数。
该值至少是 2 加 str 的长度,最多是 2 加 str 的三倍长度。
我的和你也是一样
41 00 06 e4 b8 ad e5 9b bd 41 4e 2d 56 fd 41
和老师也是一样的,老师讲错了,utf-8一个汉字可以占用3-4个字节.
望采纳~