Dart:如何将十六进制字符串转换为 Ascii 字符串

问题描述 投票:0回答:1

需要一些帮助将十六进制字符串转换为 Ascii 字符串。

我正在使用这里

的示例函数

十六进制示例 = 20354653474955 我收到此错误:

[ERROR:flutter/runtime/dart_vm_initializer.cc(41)] Unhandled Exception: RangeError (end): Invalid value: Not in inclusive range 20..21: 22

[ERROR:flutter/runtime/dart_vm_initializer.cc(41)] Unhandled Exception: FormatException: Invalid radix-16 number (at character 1)

对于在 Dart 上完成这项工作有什么建议吗?

这是我正在使用的功能:

String hexToAscii(String hexString) => List.generate(
      hexString.length ~/ 2,
      (i) => String.fromCharCode(int.parse(hexString.substring(i * 2, (i * 2) + 2), radix: 16)),
    ).join();
string dart hex ascii
1个回答
0
投票

我想通了。子字符串参数 (i *2,(i *2) +2) 似乎不正确。它跳过了十六进制字符串的一些序列。

© www.soinside.com 2019 - 2024. All rights reserved.