iconv("GB2312","UTF-8",$str)
php.ini
;php_iconv.dll去掉分号

解决方案 »

  1.   

    iconv("GB2312","UTF-8",$str)
    跟php版本有关,php5以上就默认加载php_iconv.dll了
      

  2.   

    我的是PHP5的 我靠 
    怎么还没有解答啊 我快疯了,
    今天一天了还没有解决,哪怕是个小例子让我看看效果啊 .,.我们头也没有具体告诉我是什么样的形式我也没见过,希望有人来解答快点,快下班了
      

  3.   

    说过了 不用iconv()函数 因为可能服务器上不支持 , 只是要在存储的时候转换就OK 了 还没有高人来回答啊? 我看了个例子,应该可以搞定.
    可是不是很明白希望有高人帮忙啊!
    贴出来拉
    <?PHP 
    //对照表的使用 
    $filename = "gb2312.txt"; 
    $fp = fopen($filename,"r"); 
    while(! feof($fp)) { 
    list($gb,$utf8) = fgetcsv($fp,10); $charset[$gb] = $utf8; 
    }  
    //以上读取对照表到数组备用 /** gb2312到utf-8 **/ 
    function gb2utf8($text, &$charset) { 
    //提取文本中的成分,汉字为一个元素,连续的非汉字为一个元素 
    preg_match_all("/(?:[\x80-\xff].)|[\x01-\x7f]+/",$text,$tmp); 
    $tmp = $tmp[0]; 
    //分离出汉字 
    $ar = array_intersect($tmp, array_keys($charset)); 
    //替换汉字编码 
    foreach($ar as $k=>$v) 
    $tmp[$k] = $charset[$v]; 
    //返回换码后的串 
    return join('',$tmp); 
    } /** utf-8到gb2312 **/ 
    function utf82gb($text, &$charset) { 
    $p = "/[xf0-xf7][x80-xbf]{3}|[xe0-xef][x80-xbf]{2}|[xc2-xdf][x80-xbf]|[x01-x7f]+/"; 
    preg_match_all($p,$text,$r);
     
    $utf8= array_flip( $charset ); 
    foreach($r[0] as $k=>$v) 
    if(isset($utf8[$v])) 
    $r[0][$k] = $utf8[$v]; 
    return join('',$r[0]); 
    } //测试
    $s = gb2utf8('这是对照表的测试', $charset);
    echo utf82gb($s, $charset);?>
    1.关于这个例子的问题:出错提示:
    Warning: array_flip() [function.array-flip]: Can only flip STRING and INTEGER values! in C:\Apache\www\q.php on line 302.$filename = "gb2312.txt";  gb2312.txt";我在网上找的一个gb-unicode.txt 代替.
    第30 行 :$utf8 = array_flip($charset); 难道这个FLIP()函数用的不对吗? 我不明白,谢谢
      

  4.   

    1、你的字典 $charset 不对!
    错误Can only flip STRING and INTEGER values
    的意思是array_flip() 只能翻转字符串和数字
    而在你的字典中存在了数组,而数组是不能做关联键的
    2、你说“gb2312.txt 是我在网上找的一个gb-unicode.txt 代替.”的,这是不行的
    这个gb2312.txt的内容是这样的
    gbk汉字,utf8汉字
    每行都是这样
    3、这个文件是可以自己构造的,你在可以使用iconv函数的机器上执行如下代码就可以了
    <?php
    $fp = fopen('gb2312.txt', 'w');
    for($i=0x81; $i<0xff; $i++) {
      $l = chr($i);
      for($j=0x40; $j<0xff; $j++) {
        $h = chr($j);
        $s = iconv('gbk', 'utf-8', $l.$h);
        if(! empty($s)) {
          fwrite($fp, "$l$h,$s\n");
        }
      }
    }
    fclose($fp);
    ?>
      

  5.   

    xuzuning(唠叨)  GB2312 文件已经生成了.就是在一个记事本 中点 文件->另存为 的时候 弹出的对话框的文件的 编码方式是 UTF-8的
      

  6.   

    zeroleonhart(没有螺母的螺丝钉) 说了 不用这个函数了 大哥