我想将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();