php如何输出gb2312编码对应的汉字?

例如在gb2312编码中啊的编码是B0A0,我用echo(B0A0)输出的不是啊,我该怎么输出?多谢!... 例如在gb2312编码中 啊 的编码是 B0A0 ,我用echo(B0A0)输出的不是啊,我该怎么输出?多谢! 展开
 我来答
我不知道你不知
2011-07-05 · TA获得超过1158个赞
知道小有建树答主
回答量:731
采纳率:0%
帮助的人:878万
展开全部
用chr函数输出。别听1-2楼瞎说!他们都没做过PHP开发。
汉字由于是双字节,所以要一个字节一个字节的输出,并且编码是16进制的,因此需要按下面这样输出。
复制下面的代码运行:
<?php
$chars = '你好';
$text = '';
$codes = array ();

for ($i = 0; $i < strlen( $chars ); $i++) {
$c = ord ( substr ( $chars, $i, 1 ) );
$text .= chr ( $c );
$codes [] = $c;
}

echo ( $text );
?>

同时,请注意,php对于汉字的ASCII码根据PHP文件的编码不同,是不一样的。要获取其编码,使用ord()函数,但是ord函数只返回首个字符的ASCII码

如果你知道 ASCII码,也可以通过 pack 函数打包以后作为字符串输出
百度网友9308069
2011-07-05 · TA获得超过1万个赞
知道大有可为答主
回答量:3947
采纳率:89%
帮助的人:1863万
展开全部
"啊"字的gb码不是B0A0,而是B0A1。 害我奇怪了一阵
如果存在"所输入16进制串是正确无误"的前提:

//这个是最直接、最标准的转换做法,而且是可逆的
echo pack('H*',‘B0A1’); //显示, 啊

$c=unpack('H*','啊'); //逆转换
echo $c[1]; //显示 b0a1
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
马后雷鼓下扬州5058
2011-07-05 · TA获得超过4321个赞
知道小有建树答主
回答量:693
采纳率:33%
帮助的人:792万
展开全部
应该是用urlencode进行过编码,B0A0 不是 啊,啊 应该是 B0A1

function addPercent($str) {
$data = '';
for($i = 0; $i < strlen($str); $i+=2) {
$data .= "%".$str[$i].$str[$i+1];
}
return $data;
}

$string = addPercent('B0A1');
echo urldecode($string);
// 输出 啊
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
607nojkhb
2011-07-06 · TA获得超过3621个赞
知道大有可为答主
回答量:4890
采纳率:0%
帮助的人:3108万
展开全部
试一下代码:
$str = "这%里是^测&试*中$心,欢.迎e你4的6到k来,我r们awe这y里wet一ef直在努力gr着找寻最佳gr的伙伴,希望您的$$%加盟可以@推动我们GH团队高速发展!";
$code = "/[".chr(0xa1)."-".chr(0xff)."]+/";
preg_match_all($code,$str, $arr); //GB2312汉字字母数字下划线正则表达式
print_r($arr);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
dahuang871015
2011-07-05 · 超过64用户采纳过TA的回答
知道答主
回答量:281
采纳率:0%
帮助的人:192万
展开全部
先进行转换编码格式,有对应的函数,你去网上查一下就知道了!
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(7)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式