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 语言方法都不太好使
|  |      1lcdtyph      2021-10-29 18:31:14 +08:00 via iPhone 没看懂,英文字母和数字经过几乎所有编码之后不都是一样的吗 | 
|  |      2eason1874      2021-10-29 20:03:55 +08:00 网上例子很多啊,随手搜就有 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 其实自己写也不难,徒手写考验知识,对着文档写就简单 | 
|  |      3lululau      2021-10-29 21:25:10 +08:00 echo 汉字 | od -An -tx1 | perl -alne 'print "@F"' | 
|      4cs5117155 OP @eason1874 但是如果按照这个统一方法,输入 123456 ,就得不到`31 32 33 34 35 36`这样的结果了 |