用php实现gb2312和unicode(UTF-8)间的编码转换

http://tech.ddvip.com   2007年08月26日    社区交流

内容摘要:用php实现gb2312和unicode(UTF-8)间的编码转换

function unescape($str) {
 $str = rawurldecode($str);
 preg_match_all("/(?:%u.{4})|&#x.{4};|&#d+;|.+/U",$str,$r);
 $ar = $r[0];
print_r($ar);
 foreach($ar as $k=>$v) {
  if(substr($v,0,2) == "%u")
   $ar[$k] = iconv("UCS-2","GB2312",pack("H4",substr($v,-4)));
  elseif(substr($v,0,3) == "&#x")
   $ar[$k] = iconv("UCS-2","GB2312",pack("H4",substr($v,3,-1)));
  elseif(substr($v,0,2) == "&#") {
echo substr($v,2,-1)."<br>";
   $ar[$k] = iconv("UCS-2","GB2312",pack("n",substr($v,2,-1)));
  }
 }
 return join("",$ar);
}
$str = "TTL&#20840;&#22825;&#20505;&#33258;&#21160;&#32858;&#28966;";
echo unescape($str); //out TTL全天候自动聚焦

  利用javascript来转换

<style>
BODY {
FONT-SIZE: 9pt; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; PADDING-TOP: 0px;
}
input {
FONT-SIZE: 9pt; height: 13pt;
}
</style>
<script language="JavaScript1.2">
/*
This following code are designed and writen by Windy_sk <seasonx@163.net>
You can use it freely, but u must held all the copyright items!
*/
function Str2Unicode(str){
var arr = new Array();
for(var i=0;i<str.length;i++){
 arr[i]="&#" + str.charCodeAt(i) + ";";
}
return(arr.toString().replace(/,/g,""));
}
function Unicode2oStr(str){
var re=/&#[da-fA-F]{1,5};/ig;
var arr=str.match(re);
if(arr==null)return("");
for(var i=0;i<arr.length;i++){
 arr[i]=String.fromCharCode(arr[i].replace(/[&#;]/g,""));
}
return(arr.toString().replace(/,/g,""))
}
function modi_str(){
if(document.all.text.method.checked){
 if(document.all.text.decode.value!=""){
  document.all.text.encode.value = Str2Unicode(document.all.text.decode.value);
 }else{
  document.all.text.decode.value = Unicode2oStr(document.all.text.encode.value);
 }
}else{
 if(document.all.text.encode.value!=""){
  document.all.text.decode.value = Unicode2oStr(document.all.text.encode.value);
 }else{
  document.all.text.encode.value = Str2Unicode(document.all.text.decode.value);
 }
}
}
</script>
<title>Unicode</title>
<form name=text>
文本原型:<br>
 <textarea name="decode" cols="100" rows="10"></textarea>
 <br>
转换代码:<br>
 <textarea name="encode" cols="100" rows="10"></textarea>
 <br>
 <input type="checkbox" name="method" checked> 正向转换
 <input type=button onclick="modi_str()" value=" 确 定 ">
 <input type=reset value=" 清 空 ">
 <input type=button onclick="document.all.text.method.checked?document.all.text.encode.select():document.all.text.decode.select()" value=" 全 选 ">
</form>

  下面是一个显示所有全角半角的字体的查看例子

责编:豆豆技术应用

正在加载评论...