蜜桃无码视频,国产精品 17c,5g-天天看天天奭免费入口,乱亲女H秽乱长久久久

歡迎來(lái)到 常識(shí)詞典網(wǎng) , 一個(gè)專(zhuān)業(yè)的常識(shí)知識(shí)學(xué)習(xí)網(wǎng)站!

[ Ctrl + D 鍵 ]收藏本站

您所在的位置:首頁(yè) > 電腦網(wǎng)絡(luò) > 編程

編程

UTF-8轉(zhuǎn)GB2312的php代碼

分類(lèi): 編程 常識(shí)詞典 編輯 : 常識(shí) 發(fā)布 : 12-09

閱讀 :872

在UTF-8,與UNICODE之間轉(zhuǎn)換的時(shí)候,用二進(jìn)制運(yùn)算,代替了字符串的轉(zhuǎn)換。UTF-8一個(gè)漢字,用3個(gè)字節(jié),而UNICODE用2個(gè)字節(jié);對(duì)應(yīng)關(guān)系如下:

將UTF-8編碼的字符串轉(zhuǎn)化成GB2312的編碼,沒(méi)有對(duì)應(yīng)編碼的字符串轉(zhuǎn)化為&#DEC; 的格式。如 회=>회

  語(yǔ)言:PHP,Javascript

  內(nèi)容:瀏覽器用Javascript中encodeURI函數(shù)將字符串(包含非GB2312中字符)編碼,GET請(qǐng)求到服務(wù)器,頁(yè)面編碼均為GB2312,服務(wù)器PHP腳本將請(qǐng)求數(shù)據(jù)轉(zhuǎn)換成GB2312表示。

  基礎(chǔ):

  1. 單獨(dú)使用iconv函數(shù)只能轉(zhuǎn)換GB2312字符,外文字符無(wú)法轉(zhuǎn)換
  2. 沒(méi)有現(xiàn)成的函數(shù)可以用
  3. bindec()函數(shù):將二進(jìn)制格式的"01"字符串轉(zhuǎn)換為十進(jìn)制數(shù)
  4. decbin()函數(shù):將十進(jìn)制數(shù)轉(zhuǎn)換為二進(jìn)制字符串,如decbin(224)="11100000"

  思路:因?yàn)閁TF-8分別有1,2,3字節(jié)編碼,中日韓文都是3字節(jié)編碼,處理時(shí)根據(jù)字符編碼中首字節(jié)大小區(qū)分字節(jié)數(shù)量。

  1.如首字節(jié)小于128,為ASCII碼
  2.128~192,非UTF-8編碼,且處理為&#ord();
  3. 192~224,  雙字節(jié)UTF-8編碼
  4. 224~240,三字節(jié)編碼
  5. 240~248,四字節(jié)編碼
  6. 。。。
  7. 對(duì)于三字節(jié)編碼的嘗試用iconv轉(zhuǎn)換成GB2312
  8. 非GB2312的多字節(jié)字符,嘗試把UTF-8轉(zhuǎn)換成Unicode,再取到Unicode十進(jìn)制值
  9. 可以考慮使用位運(yùn)算,也可以用bindec()函數(shù)

  程序:

 function GetGB2312String($name)
 {
  $tostr = "";
  for($i=0;$i<strlen($name);$i++)
  {
   $curbin = ord(substr($name,$i,1));
   if($curbin < 0x80)
   {
    $tostr .= substr($name,$i,1);
   }elseif($curbin < bindec("11000000")){
    $str = substr($name,$i,1);
    $tostr .= "&#".ord($str).";";
   }elseif($curbin < bindec("11100000")){
    $str = substr($name,$i,2);
    $tostr .= "&#".GetUnicodeChar($str).";";
    $i += 1;
   }elseif($curbin < bindec("11110000")){
    $str = substr($name,$i,3);
    $gstr= iconv("UTF-8","GB2312",$str);
    if(!$gstr)
    {
     $tostr .= "&#".GetUnicodeChar($str).";";
    }else{
     $tostr .= $gstr;
    }
   
    $i += 2;
   }elseif($curbin < bindec("11111000")){
    $str = substr($name,$i,4);
    $tostr .= "&#".GetUnicodeChar($str).";";
   
    $i += 3;
   }elseif($curbin < bindec("11111100")){
    $str = substr($name,$i,5);
    $tostr .= "&#".GetUnicodeChar($str).";";
   
    $i += 4;
   }else{
    $str = substr($name,$i,6);
    $tostr .= "&#".GetUnicodeChar($str).";";
   
    $i += 5;
   }
  }
 
  return $tostr;
 }
 
 function GetUnicodeChar($str)
 {
  $temp = "";
  for($i=0;$i<strlen($str);$i++)
  {
   $x = decbin(ord(substr($str,$i,1)));
   if($i == 0)
   {
    $s = strlen($str)+1;
    $temp .= substr($x,$s,8-$s);
   }else{
    $temp .= substr($x,2,6);
   }
  }
 
  return bindec($temp);
 }

  附:

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

下一篇:以下關(guān)于RDS說(shuō)法有誤的是 下一篇 【方向鍵 ( → )下一篇】

上一篇:網(wǎng)頁(yè)設(shè)計(jì)使用alt標(biāo)簽屬性 上一篇 【方向鍵 ( ← )上一篇】

国产精品YJIZZ视频网| 韩国视频日本性| 欧美日韩无线资源| AV中文字幕第一页| 无码aⅴ精品一区二区三区| 男人的天堂久久精品| 国产精品国内自产| 无码熟妇自拍视频| www.色综合| 岛国片在线免费观看一区| 九九在线中文字幕无码| 波多野结衣办公室57分钟| 亚洲国产av污| 亚洲AV无码综合一区二区三区| 亚洲一区二区精品电影| 亚洲综合久久综合网| 青青草免费在线视频| 在线免费看18禁| 久久久久免费高清国产| 波多野50部无码喷潮| 亚洲精品欧美精品国产精品| 黄色国产视频| 懂色av粉嫩一区二区| 国产真人做受免费视频| 国产精品乱| 精品久久久清纯| AV在线免费天堂污| 中文字幕一区二区磁力| 日韩小视频无码专区| 国产成人综合亚洲欧洲色就色| 加勒比无码在线观看| 亚洲国产日韩欧美精品精品 | 久久婷婷五月综合97色直播| 欧美一区二区三区的| 中文A级黄色录像| 小美女在线自| 日韩精品人妻一区二区三区| 日韩人妻熟妇| 五月丁香城市激情| 日韩精品无码一本二本三| 久久AV老司机精品网站导航|