ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、视频、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
| 字符串和ascii互转 | | | --- | --- | ``` /** * [strtoascii 将字符串转为十六进制的ascii码值(也包括中文汉字)] * @param [type] $str [需要转换的字符串] * @return [type] [返回十六进制] */ function strtoascii($str){ $str=mb_convert_encoding($str,'GB2312'); #把字符串转为GB2312编码格式(中文一个汉字为2个字节长度,其它为一个字节长度) $change_after=''; for($i=0;$i<strlen($str);$i++){ $temp_str = dechex(ord($str[$i])); #获取ascii码值,再转成十六进制 $change_after .= $temp_str[1].$temp_str[0]; #调换十六进制的位置, 第一个字节称为“高位字节”,第二个字节称为“低位字节” } return strtoupper($change_after); } /** * [asciitostr 将十六进制的ascii码值转换为字符串(也包括中文汉字)] * @param [type] $sacii [需要转换的十六进制ascii码值] * @return [type] [返回字符串] */ function asciitostr($sacii){ $asc_arr= str_split(strtolower($sacii),2); #先字符串转小写,再每两个字符串组成数组 $str=''; for($i=0;$i<count($asc_arr);$i++){ //第一个字节称为“高位字节”,第二个字节称为“低位字节” $str.=chr(hexdec($asc_arr[$i][1].$asc_arr[$i][0])); #调转十六进制位置,再转回十进制,通过chr函数转成字符串 } return mb_convert_encoding($str,'UTF-8','GB2312'); #转成utf-8编码格式 } #Example $str_16 = strtoascii('啊哈哦abc'); #输出0B1A9BEF5C6B162636 ,该字符串为16进制 asciitostr($str_16) #输出:啊哈哦abc , 反转回字符串 ```