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

时间:2020-03-18 16:04:03

标签: php utf-8 hex

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

UTF8为:�9(5 12�#

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

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

谢谢!

1 个答案:

答案 0 :(得分:1)

$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�#);