<?php
$text = "如何将utf-8的字符转成uncode的ascci形式";
$utf8 = iconv("gbk","utf-8",$text);
//以上产生utf-8编码的字符串
$ucs2 = iconv("utf-8","ucs-2",$utf8); //转换utf-8编码为unicode编码preg_match_all("/../",$ucs2,$regs); //拆分unicode编码串
$ch = '';
foreach($regs[0] as $v) {
  printf("&#x%s;",bin2hex($v)); //输出可供浏览器解释的ascii格式
  $ch .= sprintf("%%u%s",bin2hex($v)); //产生可供unescape函数使用的ascii格式
}?>
<script>
document.write(unescape("<?php echo $ch; ?>"));
</script>

解决方案 »

  1.   

    一个简单办法
    用editplus另存为,转换器选择为unicode
    ^_^
      

  2.   

    原理终于看明白了...
    $str = "一";
    //转成16进制,然后再转成10进制,然后再转回2进制...目的得到2进制的这个串...
    echo decbin(hexdec(bin2hex(iconv("gb2312","utf-8",$str))));
    //输出为111001001011100010000000
    //然后查表取出X然后转成十进就行了./*
    U-00000000 - U-0000007F:  0xxxxxxx  
    U-00000080 - U-000007FF:  110xxxxx 10xxxxxx  
    U-00000800 - U-0000FFFF:  1110xxxx 10xxxxxx 10xxxxxx  
    U-00010000 - U-001FFFFF:  11110xxx 10xxxxxx 10xxxxxx 10xxxxxx  
    U-00200000 - U-03FFFFFF:  111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx  
    U-04000000 - U-7FFFFFFF:  1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx  
    */
    对应第三行的格式..然后将X取出...最后转成十进制就行了...
      

  3.   

    <?php
    $text = "中上国";
    echo GBKToUnicodeAccsi($text,"win");function GBKToUnicodeAccsi($text,$os){
    $utf8 = iconv("gbk","utf-8",$text);
    $ucs2 = iconv("utf-8","ucs-2",$utf8);
    $ua = "";
    for($i=0;$i<strlen($ucs2);$i++){

    $v[0]=bin2hex($ucs2[$i]);
    $i++;
    $v[1]=bin2hex($ucs2[$i]);
    if($os=="win"){
    $ua .= sprintf("&#x%s;",$v[0].$v[1]);
    }else{
    $ua .= sprintf("&#x%s;",$v[1].$v[0]);
    }
    }
    return $ua;
    }
    ?>