php 怎么将utf-8格式的汉字转换成16进制?

作者&投稿:宦肢 (若有异议请与网页底部的电邮联系)
汉字怎样转换十六进制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);// 转换成汉字:我爱你

首先,UTF-8编码的中文字符也是正常的。
如果你认为 gb2312 才“正常”, 可以这样:
$utf8_str = '中文'; // 注意这儿得是 UTF-8 编码的字符串
$gb2312_str = mb_convert_encoding($str, 'GB2312', 'UTF-8');

%E5%90%89%E6%9E%97
有人已经回答了,
用 urldecode 就行了。

//字符串转换成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 '<br>';

$hex = str2hex($str);
echo $hex;
echo '<br>';

$dec = hex2str($hex);
echo $dec;
echo "<br>";
echo "<hr>";
//gbk测试
$gbkstr = mb_convert_encoding($str,'GBK','UTF-8');
echo mb_strlen($gbkstr);
echo '<br>';

$hex = str2hex($gbkstr);
echo $hex;
echo '<br>';

$dec = mb_convert_encoding(hex2str($hex), 'UTF-8', 'GBK');
echo $dec;
echo "<br>";
}


//字符串转换成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 "";
}


通城县15176478229: PHP UTF - 8加入中文 -
止伦化痔: 只要你在PHP页面加上header('Content-Type:text/html; charset=utf-8');就可以,在你的PHP页面随便加汉字,不会出现乱码.

通城县15176478229: php文件怎么设置utf - 8编码 -
止伦化痔: 使用PHP的header函数就可以实现哦,如下:header('Content-type:text/html;charset=utf-8'); echo "我是utf-8格式的文字哦,现在我可以正常显示了.";

通城县15176478229: PHP怎么把经过UTF - 8编码的中文字符转换成正常的中文 -
止伦化痔: <?$a=urldecode("%E5%90%89%E6%9E%97");$a=mb_convert_encoding($a, 'GB2312', 'UTF-8'); echo $a;?>

通城县15176478229: 在PHP中,怎样将编码为UTF8的汉字转换为gbk编码的汉字? -
止伦化痔: 数据库连接后 mysql_query("SET NAMES 'gb2312'");直接自动转换了

通城县15176478229: php中输出字符串的utf - 8编码 -
止伦化痔: 比如输入“呵”,输出%E5%91%B5 这个是urlencode的...

通城县15176478229: 求助关于PHP转换汉字为UTF8字符的问题 -
止伦化痔: 这样改试试.注释掉这段/* if($value < 223){$str[$i] = rawurlencode(utf8_decode($str[$i]));//先将utf8编码转换为ISO-8859-1编码的单字节字符,urlencode单字节字符.//utf8_decode()的作用相当于iconv("UTF-8","CP1252",$v).}else{$str[$i] ...

通城县15176478229: 在php里面有没有办法把用户输入的汉字转换为该汉字的utf - 8的编码
止伦化痔: 你网页使用utf-8编码,然后使用php的url编码函数,将输入的汉字进行url编码即可啊

通城县15176478229: 如何配置PHP UTF8 编码 配置文件 -
止伦化痔: 1. 打开源文件,找到meta标签处;2. 加上<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />;3. 关闭保存即可.

通城县15176478229: php中utf - 8编码下用正则表达式如何匹配汉字 -
止伦化痔: PHP中utf-8编码下匹配汉字的正则表达式:'/[\x{4e00}-\x{9fa5}]+/u' php中utf-8编码下匹配汉字的正则表达式的例子:$str = "我们的田野美丽的田野"; iconv("gbk","utf-8",$str); $pattern = '/[\x{4e00}-\x{9fa5}]+/u'; preg_match_all($pattern, $str, $matches); print_r($matches);?>运行结果:Array ( [0] => Array ( [0] => 我们的田野 [1] => 美丽的田野 ) )

通城县15176478229: 如何用PHP将JAVASCRIPT的UTF - 8转义字符转换成汉字? -
止伦化痔: 有转换字符编码的函数啊.$text=iconv("GB2312","UTF-8",$text);例如这样.不过不知道你的文件编码是什么.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网