恩,是的。那应该怎么正确转义呢
就是让它转义后在Excel中显示为德文字符

解决方案 »

  1.   

    转义后的字符串不显示在网页上,而是保存到excel数据表里,经由excel显示出来(也就是下载下来)
      

  2.   

    <?
    class qswhGBK{
     var $qswhData;
     function qswhGBK($filename="qswhGBK.php"){
      $this->qswhData=file($filename);
     }
     function gb2u($gb,$callback=""){
      /******(qiushuiwuhen 2002-8-15)******/
      $ret="";
      for($i=0;$i<strlen($gb);$i++){
       if(($p=ord(substr($gb,$i,1)))>127){
        
        $q=ord(substr($gb,++$i,1));
        $q=($q-($q>128?65:64))*4;
        $q=substr($this->qswhData[$p-128],$q,4);
       }
       else
        $q=dechex($p);
       if(empty($callback))
        $ret.=$q;
       else {
        $arr=array("htmlHex","htmlDec","escape","u2utf8");
        if(is_integer($callback)){
         if($callback>count($arr))die("Invalid Function");
         $ret.=$this->$arr[$callback-1]($q);
        }else
         $ret.=$callback($q);
       }
      }
      return $ret;
     }
     
     function htmlHex($str){
      return "&#x".$str.";";
     }
     
     function htmlDec($str){
      return "&#".hexdec($str);
     }
     
     function escape($str){
      return hexdec($str)<256?chr(hexdec($str)):"%u".$str;
     }
     
     function u2utf8($str){
      /******(qiushuiwuhen 2002-8-15)******/
      $sp="!'()*-.0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz~";
      $dec=hexdec($str);
      $bin=decbin($dec);
      $len=strlen($bin);
      $arr=array("c0","e0","f0");
      if($dec>0x7f){
       $ret="";
       for($i=$len,$j=-1;$i>=0;$i-=6,$j++){
        if($i>6)
         $ret="%".dechex(0x80+bindec(substr($bin,$i-6,6))).$ret;
        else
         $ret="%".dechex(hexdec($arr[$j])+bindec(substr($bin,0,6-$i))).$ret;
       }
      }else{
       if(strpos($sp,chr($dec)))
        $ret=chr($dec);
       else
        $ret="%".strtolower($str);
      }
      return $ret;
     }
    } ?>
      

  3.   

    这是什么?看不懂。
    我是php的新手
    其实我的问题很简单:就是将一个从德文数据库中取出一个字段(例如是Kolberger+Stra%C3%9Fe),然后把这个字段转义存到excel表格中,现在是我用urldecode转义后它在excel中显示的是Kolberger Stra脽e(这是不对的)。
    所以想问一下如何将其正确显示为德文。不知道是转义的问题,还是excel中不能显示德文字符?
    谢谢