在 PHP 中将 UTF8 转换为十六进制

Convert UTF8 to hexadecimal in PHP

我尝试在 PHP 中将 UTF8 转换为十六进制。

UTF8 为:�9(512�#

在十六进制中,这应该是:0xef 0xbf 0xbd 0x18 0x39 0x28 0x07 0x02 0x35 0x01 0x13 0x31 0x32 0x0e 0xef 0xbf 0xbd 0x23 0x08

有没有人可以帮助我? Google 没有帮助我 xD

提前致谢!

$string = '�9(512�#';
for ($i = 0; $i < strlen($string); $i++) {
echo str_pad(dechex(ord($string[$i])), 4, '0x0', STR_PAD_LEFT);
}

但是,您的 UTF8 编码似乎来自字节数组或二进制文件,您将其转换为字符串以供查看,而现在您希望它是十六进制的。打个比方,这就像有一个二进制数,然后将其转换为基数 10,然后将基数 10 转换为基数 64,此时您可以将二进制直接转换为基数 64。跳过中间编码,直接转到您想要的内容。

我只能猜测你是怎么来到这里的以及你为什么要去那里,但是,如果你想把你的数据变成一种可以通过 POST 传输的形式,或者变成一些一种看起来伪造的字符串,尝试使用 URL 编码直接进入 base-64。

echo base64_encode($thedatathatgaveyou�9512�#);