2
我试图看到Java和Javascript中的UTF-8字节。为什么在Java和Javascript中不同的字节数组表示法?
在Javascript中,
new TextEncoder().encode("");
回报=>[240, 159, 145, 141]
而在Java,
"".getBytes("UTF-8")
回报=>[-16, -97, -111, -115]
我转换使用我发现对应的方法的那些字节数组到十六进制字符串到语言(JS,Java)并且都返回F09F918D
事实上,-16 & 0xFF
给人=>240
我好奇地想知道更多关于为什么这两种语言选择代表字节数组不同的方式。我花了一段时间才弄清楚这一点。
一个是签名的,一个是无符号的。仍然是相同的二进制表示 –