PHP语言之不用iconv函数实现UTF-8编码转换GB2312的PHP函数
小标 2018-10-29 来源 : 阅读 1123 评论 0

摘要:本文主要向大家介绍了PHP语言之不用iconv函数实现UTF-8编码转换GB2312的PHP函数,通过具体的内容向大家展示,希望对大家学习php语言有所帮助。

本文主要向大家介绍了PHP语言之不用iconv函数实现UTF-8编码转换GB2312的PHP函数,通过具体的内容向大家展示,希望对大家学习php语言有所帮助。


假如使用 iconv() 函数转换编码就相比比较简单了,不过很多虚拟主机里并不支持这个组件,我在网上找半天,才找到一个gb2312转utf-8的方法,但不能逆向转换。



这个函数如下:



/*******************************

//GB转UTF-8编码

*******************************/

function gb2utf8($gbstr) {

global $CODETABLE;

if(trim($gbstr)=="") return $gbstr;

if(empty($CODETABLE)){

$filename = dirname(__FILE__)."/gb2312-utf8.table";

$fp = fopen($filename,"r");

while ($l = fgets($fp,15))

{ $CODETABLE[hexdec(substr($l, 0, 6))] = substr($l, 7, 6); }

fclose($fp);

}

$ret = "";

$utf8 = "";

while ($gbstr) {

if (ord(substr($gbstr, 0, 1)) > 127) {

$thisW = substr($gbstr, 0, 2);

$gbstr = substr($gbstr, 2, strlen($gbstr));

$utf8 = "";

@$utf8 = u2utf8(hexdec($CODETABLE[hexdec(bin2hex($thisW)) - 0x8080]));

if($utf8!=""){

for ($i = 0;$i < strlen($utf8);$i = 3)

$ret .= chr(substr($utf8, $i, 3));

}

}

else

{

$ret .= substr($gbstr, 0, 1);

$gbstr = substr($gbstr, 1, strlen($gbstr));

}

}

return $ret;

}

//Unicode转utf8

function u2utf8($c) {

for ($i = 0;$i < count($c);$i )

$str = "";

if ($c < 0x80) {

$str .= $c;

} else if ($c < 0x800) {

$str .= (0xC0 | $c >> 6);

$str .= (0x80 | $c & 0x3F);

} else if ($c < 0x10000) {

$str .= (0xE0 | $c >> 12);

$str .= (0x80 | $c >> 6 & 0x3F);

$str .= (0x80 | $c & 0x3F);

} else if ($c < 0x200000) {

$str .= (0xF0 | $c >> 18);

$str .= (0x80 | $c >> 12 & 0x3F);

$str .= (0x80 | $c >> 6 & 0x3F);

$str .= (0x80 | $c & 0x3F);

}    

   

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标编程语言PHP频道!

本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 1 不喜欢 | 0
看完这篇文章有何感觉?已经有1人表态,100%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式AI+学习就业服务平台 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved