<?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>
$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>
用editplus另存为,转换器选择为unicode
^_^
$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取出...最后转成十进制就行了...
$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;
}
?>