首页 > 解决方案 > 在 Dart/Flutter 中将 Uint16List 转换为字符串或整数

问题描述

我正在制作一个应用程序,从 Modbus 协议获取数据。它基本上返回带有整数的数组,我需要将其转换为字符串和整数。

即这应该是一个设备名称

[53440, 11714, 52701, 10449, 14157, 13876, 41, 0, 0, 0, 0, 0, 53440, 11714, 52701, 10449, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]

我正在使用 dart:convert 和以下方法

var deviceName = await client.readHoldingRegisters(0x90, 32)
var deviceStr = String.fromCharCodes(deviceName)

结果如下:

타ⷂ췝⣑㝍㘴)

也许我做错了什么或者这是我需要翻译的真实设备名称

要获取设备操作系统版本,我使用以下代码

var version = await client.readHoldingRegisters(0x82, 2);
Result: [264, 0]

如果我把它转移到字符串我得到这个

Ĉ

在 Dart 中将 Uint16List 传输到字符串/整数的正确方法是什么?

标签: flutterdartmodbusuint16

解决方案


尝试这个:

final _uint16List = Uint16List.fromList(deviceName);
final _base64String = base64Encode(_uint16List);

推荐阅读