iconv ("gb2312","UNICODE","$str"); 

解决方案 »

  1.   

    to cpc1984 
    还是乱码
      

  2.   

    忘了说了,我是将转换后的unicode字符串插入到word文档,才知道是乱码的。
    而我用java和c++相应的转换函数就没有问题
      

  3.   

    to fxs_2008 
    什么意思?能具体说说吗?
    不转换的话,直接将gb2312的字符串写入word,那是绝对的乱码。
      

  4.   

    如果是用gb2312插word,原则上应是可以自动识别的
    可以发一下你的代码看看
      

  5.   

    是通过调用一个叫puno的php插件来控制openoffice.
    $footer_x_text是openoffice的文本类对象.insertString 方法负责插入内容。        $str = "中国!";
    $str_converted = iconv ("gb2312", "UNICODE", "$str");
            //$str = "涓浗!";
    //$str_converted = iconv ("utf-8", "UNICODE", "$str");
    echo "$str_converted\n";
    $footer_x_text->insertString ($x_footer_text_cursor, $str_converted, false);
    全部的代码在 http://www.wstech2.net/index.php?do=puno_ex3
    我的程序基本上是照着写的
      

  6.   

    openoffice不熟,
    MS word  或可以
    另你那个是PDF,进word不知行不行
      

  7.   

    to fxs_2008 
    对,我把生成pdf改成doc了
    生成doc是没有问题,但是插入中文是乱码!
      

  8.   

    真麻烦啊,java的string类直接就可以了,对c++提供了oustring这样处理unicode的接口。
    用php居然出现这样的问题。
      

  9.   

    pdf中有没有中文字符集啊!
    在word中用utf-8
    要把&#25545之类的替换成/u25545word可以自动识别
      

  10.   

    to jianglin28290 
    php中 要如何转换?
      

  11.   

    $str=iconv("gb2312","utf-8",$str);
    $arr = split("&#",$str);
    $str="";
    if(count($arr)>1) {
      for($i=0;$i<count($arr)-2;$i++){
         $str.= $arr[$i].'/u';
      }
    }
    return $str;
    试试看!我没有试过!
      

  12.   

    谢谢jianglin28290 =======================我发现,用iconv转换出来的unicode,每个汉字占3个字节。
    而真正的unicode应该是个短整型的数字,占两个字节。
    这是为什么?