将ASCII转换为十六进制



我想将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

Integer.toHexString等价的是在整数值上调用. toradixstring(16)。

asciiToHex函数可以翻译成如下格式:

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

Try

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

最新更新