byte数组通常表示字符串,每个元素都是一个字节。
Java代码
import java.util.Arrays;
public class byteTest {
public static void main(String[] args) {
// byte数组,每个元素都是一个字节 [11,22,33,44,55]
byte[] data = {97, 105, 100, 61, 50, 52, 54, 51, 56, 55, 53, 55, 49, 38, 97, 117, 116, 111, 95, 112, 108, 97, 121, 61, 48, 38, 99, 105, 100, 61, 50, 56, 57, 48, 48, 56, 52, 52, 49, 38, 100, 105, 100, 61, 75, 82, 69, 104, 69, 83, 77, 85, 74, 104, 56, 116, 70, 67, 69, 86, 97, 82, 86, 112, 69, 50, 116, 97, 80, 81, 107, 55, 87, 67, 104, 67, 74, 103, 38, 101, 112, 105, 100, 61, 48, 38, 102, 116, 105, 109, 101, 61, 49, 54, 50, 55, 49, 48, 48, 57, 51, 55, 38, 108, 118, 61, 48, 38, 109, 105, 100, 61, 48, 38, 112, 97, 114, 116, 61, 49, 38, 115, 105, 100, 61, 48, 38, 115, 116, 105, 109, 101, 61, 49, 54, 50, 55, 49, 48, 52, 51, 55, 50, 38, 115, 117, 98, 95, 116, 121, 112, 101, 61, 48, 38, 116, 121, 112, 101, 61, 51}; // 这里应该表示的是一个字符串。
String dataString = new String(data);
System.out.println("字节数组转换为字符串:" + dataString);
// 字符串也可以转换成字节
byte[] res = dataString.getBytes();
System.out.println(Arrays.toString(res));
try{
String name = "我们阿森纳是不可战胜的";
byte[] v1 = name.getBytes("utf-8");
System.out.println(Arrays.toString(v1));
byte[] v2 = name.getBytes("UTF-8"); // 默认
System.out.println(Arrays.toString(v2));
}catch (Exception e){
}
}
}
Python代码
# Python代码
byte_list = [-26, -120, -111, -28, -69, -84, -23, -104, -65, -26, -93, -82, -25, -70, -77, -26, -104, -81, -28, -72, -115, -27, -113, -81, -26, -120, -104, -24, -125, -100, -25, -102, -124]
bs = bytearray() # python字节数组
for item in byte_list:
if item < 0:
item = item + 256
bs.append(item)
str_data = bs.decode('gbk') # data = bytes(bs)
print(str_data)