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;
}

 

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐