作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
public static void main(String args[])
{
byte[] bytearray = new byte[]{1, -30, 48, 50, 49, 48};
for (int i = 0; i < bytearray.length; i++) {
System.out.print(bytearray[i]+", ");
}
System.out.println();
System.out.println("Length of byteArray before : "+bytearray.length);
String st = new String(bytearray);
System.out.println("String value : "+ st);
bytearray = st.getBytes();
for (int i = 0; i < bytearray.length; i++) {
System.out.print(bytearray[i]+", ");
}
System.out.println();
System.out.println("Length of byteArray after : "+bytearray.length);
}
这是我的程序,如果我在 Windows 上执行此程序,我会得到与之前完全相同的字节,但在 ubuntu 上,它会多出 2 个字节,我不明白吗?为什么?
我应该使用哪种方法在 ubuntu 上获取相同的数组?
最佳答案
抱歉,我认为您使用的是有效的编码数据。
你的字节不是有效的 UTF-8,所以如果你有不同版本的 Java,它可能会以不同的方式处理这个问题。
new byte[]{1, -30, 48, 50, 49, 48}
简而言之,您应该使用文本来尝试存储二进制数据。这只会让你感到困惑(并浪费内存)
关于java - 字符串到字节数组的转换因windows和ubuntu而异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40216640/
我是一名优秀的程序员,十分优秀!