将十六进制转换为ascii字符

Dzi*_*mid 12 php encoding decoding

是否可以用0-9a-zA-Z字符序列表示十六进制字符序列(0-9A-F),因此结果序列更小并且可以解码?

例如:

$hex = '5d41402abc4b2a76b9719d911017c592';
echo $string = encode($hex); // someASCIIletters123
echo decode(string) == $hex; //true
Run Code Online (Sandbox Code Playgroud)

小智 24

我想你正在寻找这个:

function hex2str($hex) {
    $str = '';
    for($i=0;$i<strlen($hex);$i+=2) $str .= chr(hexdec(substr($hex,$i,2)));
    return $str;
}
Run Code Online (Sandbox Code Playgroud)

(来自http://www.linux-support.com/cms/php-convert-hex-strings-to-ascii-strings/)(像这个javascript工具一样工作:http://www.dolcevie.com/js/ converter.html)


Mar*_*c B 16

你的意思是想将十六进制数字的字符串转换为实际的十六进制值?

$hex_string = "A1B2C3D4F5"; // 10 chars/bytes
$packed_string = pack('H*', $hex_string); // 0xA1B2C3D4F5 // 5 chars/bytes.
Run Code Online (Sandbox Code Playgroud)


Jon*_*Jon 6

您可以使用该功能轻松调整我在此处介绍的解决方案base_convert_arbitrary.

编辑:我没有仔细阅读:)基地16到基地62仍然非常可行,如上所述.

看到它在行动.