flutter开发Uint8List和String相互转换 socket字节流

it2025-02-10  11

List<int> list = 'hello'.codeUnits; Uint8List bytes = Uint8List.fromList(list); String string = String.fromCharCodes(bytes); print(string);

1、包长设置两字节  两字节转包长

int oldlenth = 4; var data = ByteData(2); data.setInt16(0, oldlenth); var bytes = data.buffer.asUint8List(); print(bytes); Uint8List uint8Data = Uint8List.fromList(bytes); ByteData byteData = ByteData.sublistView(uint8Data); int newlenth = byteData.getInt16(0); print(newlenth);

2、string -> Uint8List

Uint8List encode(String s) { var encodedString = utf8.encode(s); var encodedLength = encodedString.length; var data = ByteData(encodedLength + 4); data.setUint32(0, encodedLength, Endian.big); var bytes = data.buffer.asUint8List(); bytes.setRange(4, encodedLength + 4, encodedString); return bytes; }

 

最新回复(0)