php实现编码的转换
php实现编码的转换,这里会把gb2312转换成utf-8
<?php
function gb2utf8($gb) {
if (!trim($gb)) return $gb;
$utf8 = '';
while ($gb) {
if (ord(substr($gb, 0, 1)) > 127) {
$t = substr($gb, 0, 2);
$gb = substr($gb, 2);
$utf8.= $this->u2utf8($this->codetable[hexdec(bin2hex($t)) - 0x8080]);
} else {
$t = substr($gb, 0, 1);
$gb = substr($gb, 1);
$utf8.= $this->u2utf8($t);
}
}
return $utf8;
}
function u2utf8($c) {
$str = '';
if ($c < 0x80) {
$str.= $c;
} else if ($c < 0x800) {
$str.= chr(0xC0 | $c >> 6);
$str.= chr(0x80 | $c & 0x3F);
} else if ($c < 0x10000) {
$str.= chr(0xE0 | $c >> 12);
$str.= chr(0x80 | $c >> 6 & 0x3F);
$str.= chr(0x80 | $c & 0x3F);
} else if ($c < 0x200000) {
$str.= chr(0xF0 | $c >> 18);
$str.= chr(0x80 | $c >> 12 & 0x3F);
$str.= chr(0x80 | $c >> 6 & 0x3F);
$str.= chr(0x80 | $c & 0x3F);
}
return $str;
}说一点,编码集我就不写出来了,用for一下就知道了.
本文地址:http://www.phprm.com/code/8bf9fa8d35938d2dd2017d536057b20b.html
转载随意,但请附上文章地址:-)