首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > PHP >

求iconv的替代函数,该如何解决

2012-02-06 
求iconv的替代函数网上找了下,没对照表,求一个,最好自己试过的,发我邮箱吧amani1234#21cn.com,谢谢[解决办

求iconv的替代函数
网上找了下,没对照表,求一个,最好自己试过的,发我邮箱吧amani1234#21cn.com,谢谢

[解决办法]


PHP code
/*******************************//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转utf8function 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); } return $str;}
[解决办法]
楼主看下这个帖子:http://neture.homeip.net/digiland/viewtopic.php?pid=39
下載地址osc_iconv.zip
里面有对照表的

如果需要非要使用,建议在php中打开iconv吧。
[解决办法]
建议还是不要自己写了
[解决办法]
强烈建议使用内置的,自己写对照表肯定不全
iconv 能处理的字符集有很多,自己写的肯定不能全包括

热点排行