我想把“Hello”转换成十六进制
codeUnits是:
[72, 101, 108, 108, 111, 55357, 56395]我想获得:48656c6c6ff09f918b
请问怎么做?我使用了一些libs‘品纳尼’,‘十六进制’,但我得到了一个错误的正己人:48656c6c6f3d4b
发布于 2022-07-18 10:13:58
您可以使用十六进制
List<int> list = utf8.encode("Hello");
String hex = HEX.encode(list);
print(hex);结果
48656c6c6ff09f918b发布于 2022-07-18 10:14:17
您的结果是以UTF-8编码,而不是UTF-16 (您的代码单位是)。因此,您需要首先将您的String编码为UTF-8数据,然后将其转换为十六进制:
import 'dart:convert';
void main() {
String string = String.fromCharCodes([72, 101, 108, 108, 111, 55357, 56395]);
print(string); // Hello
print(utf8.encode(string).map((e) => e.toRadixString(16)).join()); // 48656c6c6ff09f918b
}https://stackoverflow.com/questions/73020439
复制相似问题