有没有一种简单而优雅的方法可以将无符号字节值转换为java中的有符号字节值?例如,如果我只有int值240(二进制(24位+ 11110000)= 32位),我怎样才能得到这个int的有符号值?
我有以下代码
public static void main(String[] args) throws UnsupportedEncodingException {
System.out.println(Charset.defaultCharset().toString());
String accentedE = "é";
String utf8 = new String(accentedE.getBytes("utf-8"), Charset.forName("UTF-8"));
System.out.println(utf8);
utf8 = new String(accentedE.getBytes(), Charset.forName("UTF-8"));
System.out.println(utf8);
utf8 = new String(accentedE.getBytes("utf-8"));
System.out.println(utf8);
utf8 = new String(accentedE.getBytes());
System.out.println(utf8);
}
Run Code Online (Sandbox Code Playgroud)
以上的输出如下
windows-1252
é
?
é
é
Run Code Online (Sandbox Code Playgroud)
有人可以帮我理解这是做什么的吗?为何输出?