很多站长朋友们都不太清楚php16进制转汉字,今天小编就来给大家整理php16进制转汉字,希望对各位有所帮助,具体内容如下:
本文目录一览: 1、 汉字怎样转换十六进制php 2、 怎样将十六进制代码转换成文字? 3、 如何将16进制转化成汉字 4、 PHP 如何将数据库中存储的十六进制数转换为汉字 汉字怎样转换十六进制php//汉字进制转换
//$string 传入的汉字或其它字符
//$tobase 要转换的进制 范围 2~36 之间任意取值
//$back 返回形式,0 转换成进制代码 ; 1 将进制转换成汉字
function ASCII($String,$tobase,$back){
if( $tobase > 1 $tobase < 37 ){
if($back == 0){
return preg_replace('/(.)/es',"str_pad(base_convert(ord('\\1'),10,$tobase),8,'0',STR_PAD_LEFT)",$String);
}else{
return preg_replace('/(\w{8})/e',"chr(base_convert('\\1',$tobase,10))",$String);
}
}else{
return false;
}
}
//范例
$str = '我爱你';
$en = ASCII($str,2,0); // 转换成2进制: 111001101000100010010001111001111000100010110001111001001011110110100000
echo ASCII($en,2,1); // 转换成汉字:我爱你
$en = ASCII($str,8,0); // 转换成8进制: 000003460000021000000221000003470000021000000261000003440000027500000240
echo ASCII($en,8,1); // 转换成汉字:我爱你
$en = ASCII($str,10,0); // 转换成10进制: 000002300000013600000145000002310000013600000177000002280000018900000160
echo ASCII($en,10,1); // 转换成汉字:我爱你
$en = ASCII($str,10,0); // 转换成10进制: 000002300000013600000145000002310000013600000177000002280000018900000160
echo ASCII($en,10,1); // 转换成汉字:我爱你
$en = ASCII($str,16,0); // 转换成10进制: 000000e60000008800000091000000e700000088000000b1000000e4000000bd000000a0
echo ASCII($en,16,1); // 转换成汉字:我爱你
怎样将十六进制代码转换成文字?具体操作步骤如下:
1、首先,在十六进制编辑模式下,左侧是行数,中间是转换后的十六进制代码,右侧是原始文本内容,如下图所示,然后进入下一步。
2、其次,如果要查看某个字符的十六进制代码,可以单击右侧的原始字符位置,在中间部分可以看到相应的十六进制值,例如,单击[5],对应的是[
35],如下图所示,然后进入下一步。
3、接着,再次复制转换后的十六进制内容,点击【全选】,如下图所示,然后进入下一步。
4、然后,单击菜单中的[编辑]-[十六进制功能]-[十六进制复制所选视图],以分别复制转换后的十六进制内容,如下图所示,然后进入下一步。
5、随后,单击菜单中的[新建文件]按钮以创建新文件,如下图所示,然后进入下一步。
6、接着,在新文件中选择[粘贴],然后将刚复制的十六进制内容粘贴到新文件中,如下图所示,然后进入下一步。
7、最后,再次单击以进入列模式。可以看到十六进制部分的内容已转换为字符,如下图所示。这样,问题就解决了。
如何将16进制转化成汉字十六进制和汉字之间不存在转换关系。
汉字在计算机内部存储用16位二进制数来存储,为了书写方便,将16位二进制数一般写出十六进制的形式,就是4位十六进制数,按照国标码和汉字机内码的转换方法,汉字存储时,每个字节的最高位均为1,也就是1******1*******的形式,转换成十六进制后,汉字的四位十六进制的第一位和第三位数均大于等于8,否则就不是汉字。
PHP 如何将数据库中存储的十六进制数转换为汉字//字符串转换成16进制
function str2hex($str){
$hex = '';
for($i=0,$length=mb_strlen($str); $i<$length; $i++){
$hex .= dechex(ord($str{$i}));
}
return $hex;
}
//16进制转换成字符串
function hex2str($hex){
$str = '';
$arr = str_split($hex, 2);
foreach($arr as $bit){
$str .= chr(hexdec($bit));
}
return $str;
}
function test(){
//utf8字符测试
$str = '中文';
echo mb_strlen($str);
echo '';
$hex = str2hex($str);
echo $hex;
echo '';
$dec = hex2str($hex);
echo $dec;
echo "";
echo "<hr>";
//gbk测试
$gbkstr = mb_convert_encoding($str,'GBK','UTF-8');
echo mb_strlen($gbkstr);
echo '';
$hex = str2hex($gbkstr);
echo $hex;
echo '';
$dec = mb_convert_encoding(hex2str($hex), 'UTF-8', 'GBK');
echo $dec;
echo "";
}
关于php16进制转汉字的介绍到此就结束了,不知道本篇文章是否对您有帮助呢?如果你还想了解更多此类信息,记得收藏关注本站,我们会不定期更新哦。
查看更多关于php16进制转汉字 php ascii转16进制的详细内容...