将 ASCII 转换为十六进制

Convert ASCII to hex

我想将 ASCII 值转换为十六进制。在Java中,我经常使用函数:

private static String asciiToHex(String asciiStr) {
    char[] chars = asciiStr.toCharArray();
    StringBuilder hex = new StringBuilder();
    for (char ch : chars) {
        hex.append(Integer.toHexString((int) ch));
    }

    return hex.toString();
}

Dart 中是否有任何方法可以像 Java 中的 Integer.toHexString 那样转换为十六进制值?

示例:

youtube.com

输出

796F75747562652E636F6D

尝试

String hexToAscii(String hexString) => List.generate(
      hexString.length ~/ 2,
      (i) => String.fromCharCode(
          int.parse(hexString.substring(i * 2, (i * 2) + 2), radix: 16)),
    ).join();

Integer.toHexString 的等价物是对整数值调用 .toRadixString(16)

asciiToHex 函数可以像这样翻译成 dart:

String asciiToHex(String asciiStr) {
  List<int> chars = asciiStr.codeUnits;
  StringBuffer hex = StringBuffer();
  for (int ch in chars) {
    hex.write(ch.toRadixString(16).padLeft(2, '0'));
  }
  return hex.toString();
}