public static void testUTF8() throws UnsupportedEncodingException{ byte[] bytes = { (byte)128, }; String str = new String(bytes, "UTF-8"); System.out.println((int)str.charAt(0)); }
[quote=引用 8 楼 wgsddfe 的回复:] [quote=引用 6 楼 jerry_dqh 的回复:] [quote=引用 4 楼 wgsddfe 的回复:] [quote=引用 2 楼 wangxf_8341 的回复:] 首先,128不在byte的范围,强制转换会变成-1,试了一下,单独一个byte,只要是负数,经过String编码之后,都变成了-3(byte),String存储的是char,是整数范围,用int表示就是65533
[quote=引用 6 楼 jerry_dqh 的回复:] [quote=引用 4 楼 wgsddfe 的回复:] [quote=引用 2 楼 wangxf_8341 的回复:] 首先,128不在byte的范围,强制转换会变成-1,试了一下,单独一个byte,只要是负数,经过String编码之后,都变成了-3(byte),String存储的是char,是整数范围,用int表示就是65533
[quote=引用 4 楼 wgsddfe 的回复:] [quote=引用 2 楼 wangxf_8341 的回复:] 首先,128不在byte的范围,强制转换会变成-1,试了一下,单独一个byte,只要是负数,经过String编码之后,都变成了-3(byte),String存储的是char,是整数范围,用int表示就是65533
[quote=引用 2 楼 wangxf_8341 的回复:] 首先,128不在byte的范围,强制转换会变成-1,试了一下,单独一个byte,只要是负数,经过String编码之后,都变成了-3(byte),String存储的是char,是整数范围,用int表示就是65533
首先,128不在byte的范围,强制转换会变成-1,试了一下,单独一个byte,只要是负数,经过String编码之后,都变成了-3(byte),String存储的是char,是整数范围,用int表示就是65533
62,614
社区成员
307,326
社区内容
加载中
试试用AI创作助手写篇文章吧