
echo Utf8ToHex("5g"); function Utf8ToHex($str){ $str = rawurlencode($str); $arr = explode('%',$str); $Hex = implode('',$arr); return $Hex; } 我这个函数如果是汉字的情况它就是正确,如果是数字+英文,他就不行了。 比如输入5g得到 16 进制是35 67; 输入123456得到 16 进制是31 32 33 34 35 36; 网上找了几个 php 语言方法都不太好使
1 lcdtyph 2021 年 10 月 29 日 via iPhone 没看懂,英文字母和数字经过几乎所有编码之后不都是一样的吗 |
2 eason1874 2021 年 10 月 29 日 网上例子很多啊,随手搜就有 function hex_chars($data) { $hex = ''; for ($i=0; $i<strlen($data); $i++) { $c = substr($data, $i, 1); //$hex .= '{'. hex_format(ord($c)). '}'; $hex .= hex_format(ord($c)); } return $hex; } function hex_format($o) { $h = strtoupper(dechex($o)); $len = strlen($h); if ($len % 2 == 1) $h = "0$h"; return $h; } echo hex_chars('5g') . "\n"; // 3567 echo hex_chars('你好') . "\n"; // E4BDA0E5A5BD 其实自己写也不难,徒手写考验知识,对着文档写就简单 |
3 lululau 2021 年 10 月 29 日 echo 汉字 | od -An -tx1 | perl -alne 'print "@F"' |