首頁 php教程 php手册 php的汉字转换: GBK->Unicode(UTF8)

php的汉字转换: GBK->Unicode(UTF8)

Jun 21, 2016 am 09:06 AM
function nbsp str

汉字|转换

php的汉字转换一直是比较麻烦的事

该类内置了四个函数"htmlHex","htmlDec","escape","u2utf8"
方便用户的使用,同时也可自定义函数进行自己喜欢的操作

qswhGBK.php 从这里下载
http://www.blueidea.com/user/qswh/qswhGBK.zip


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   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 "".$str.";";
 }
 
 function htmlDec($str){
  return "".hexdec($str).";";
 }
 
 function escape($str){
  return hexdec($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;
 }
}

使用范例
$words="中文Abc";
function ex($str){return "[".$str."]";}


$qswh=new qswhGBK("qswhGBK.php");//如果文件名是qswhGBK.php,可省参数

echo("

不带参数:".$qswh-&gt;gb2u($words));<br>echo("\n调用内置函数htmlHex:".$qswh-&gt;gb2u($words,1));<br>echo("\n调用内置函数htmlDec:".$qswh-&gt;gb2u($words,2));<br>echo("\n调用内置函数escape:".$qswh-&gt;gb2u($words,3));<br>echo("\n调用内置函数u2utf8:".$qswh-&gt;gb2u($words,4));<br>echo("\n调用自定义函数:".$qswh-&gt;gb2u($words,ex));<p>效果如下:</p> <p>不带参数:4E2D6587416263调用内置函数htmlHex:中文Abc调用内置函数htmlDec:中文Abc调用内置函数escape:%u4E2D%u6587Abc调用内置函数u2utf8:%e4%b8%ad%e6%96%87Abc调用自定义函数:[4E2D][6587][41][62][63]<br></p>



本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱門文章

倉庫:如何復興隊友
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱門文章

倉庫:如何復興隊友
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱門文章標籤

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

解決方法:您的組織要求您更改 PIN 碼 解決方法:您的組織要求您更改 PIN 碼 Oct 04, 2023 pm 05:45 PM

解決方法:您的組織要求您更改 PIN 碼

Windows 11 上調整視窗邊框設定的方法:變更顏色和大小 Windows 11 上調整視窗邊框設定的方法:變更顏色和大小 Sep 22, 2023 am 11:37 AM

Windows 11 上調整視窗邊框設定的方法:變更顏色和大小

如何在 Windows 11 上變更標題列顏色? 如何在 Windows 11 上變更標題列顏色? Sep 14, 2023 pm 03:33 PM

如何在 Windows 11 上變更標題列顏色?

Windows 11 上啟用或停用工作列縮圖預覽的方法 Windows 11 上啟用或停用工作列縮圖預覽的方法 Sep 15, 2023 pm 03:57 PM

Windows 11 上啟用或停用工作列縮圖預覽的方法

OOBELANGUAGE錯誤Windows 11 / 10修復中出現問題的問題 OOBELANGUAGE錯誤Windows 11 / 10修復中出現問題的問題 Jul 16, 2023 pm 03:29 PM

OOBELANGUAGE錯誤Windows 11 / 10修復中出現問題的問題

Windows 11 上的顯示縮放比例調整指南 Windows 11 上的顯示縮放比例調整指南 Sep 19, 2023 pm 06:45 PM

Windows 11 上的顯示縮放比例調整指南

10種在 Windows 11 上調整亮度的方法 10種在 Windows 11 上調整亮度的方法 Dec 18, 2023 pm 02:21 PM

10種在 Windows 11 上調整亮度的方法

如何在Safari中關閉iPhone的隱私瀏覽身份驗證? 如何在Safari中關閉iPhone的隱私瀏覽身份驗證? Nov 29, 2023 pm 11:21 PM

如何在Safari中關閉iPhone的隱私瀏覽身份驗證?

See all articles