相关疑难解决方法(0)

Java中的字节和字符转换

如果我将一个角色转换为byte然后再回到char那个角色,那个角色会神秘地消失并成为别的东西.这怎么可能?

这是代码:

char a = 'È';       // line 1       
byte b = (byte)a;   // line 2       
char c = (char)b;   // line 3
System.out.println((char)c + " " + (int)c);
Run Code Online (Sandbox Code Playgroud)

一直到第2行一切都很好:

  • 在第1行,我可以在控制台中打印"a",它会显示"È".

  • 在第2行,我可以在控制台中打印"b",它会显示-56,即200,因为字节已签名.200是"È".所以它仍然很好.

但第3行有什么不对?"c"成为别的东西,程序打印出来? 65480.这是完全不同的东西.

我应该在第3行写什么才能得到正确的结果?

java unicode encoding utf-16

34
推荐指数
1
解决办法
12万
查看次数

标签 统计

encoding ×1

java ×1

unicode ×1

utf-16 ×1