public static void main(String args[]){ try{ FileInputStream fs = new FileInputStream("test.txt"); int i = fs.read(); while(i != -1){ System.out.println( i); i = fs.read(); } }catch(Exception e){ System.out.println(e); } }test.txt 文件包含“Ç”。输出是 196 140 。Č 的 UTF-16 值是 268 。你能帮我看看为什么答案是 196 和 140
2 回答
斯蒂芬大帝
TA贡献1827条经验 获得超8个赞
如果不指定特定编码,Java 将默认使用“UTF-8”字符编码。
Č 的 UTF-8(十六进制)是 0xC4 0x8C,分别转换为十进制为 196 和 140。当使用 UTF-16 编码时,C 由 0x010C 的十六进制值表示,转换为十进制为 268。
明月笑刀无情
TA贡献1828条经验 获得超4个赞
尝试创建InputStreamReader isr = new InputStreamReader(new FileInputStream("test.txt"), StandardCharsets.UTF_16);
或者提供一些其他合适的字符集编码值。
添加回答
举报
0/150
提交
取消