漢字轉換成Unicode編碼PHP程式

來源:互聯網
上載者:User

漢字轉換成unicode方法

 代碼如下 複製代碼

<?php
//將utf8編碼的漢字轉換為unicode
function htou($c){
 $n = (ord($c[0]) & 0x1f) << 12;
 $n = (ord($c[1]) & 0x3f) << 6;
 $n = ord($c[2]) & 0x3f;
 return $n;
}

//在代碼中隱藏utf8格式的字串
function my_utf8_unicode($str) {
 $encode='';
 for($i=0;$i<strlen($str);$i ){
  if(ord(substr($str,$i,1))> 0xa0){
   $encode.='&#'.htou(substr($str,$i,3)).';';
   $i =2;
  }else{
   $encode.='&#'.ord($str[$i]).';';
  }
 }
 return $encode;
}

echo my_utf8_unicode("哈哈ABC");
?>

漢字轉換成unicode方法二

 代碼如下 複製代碼


function getUnicode($word)
{
 // 轉UTF8
 $word0 = iconv('gbk', 'utf-8', $word);
 $word1 = iconv('utf-8', 'gbk', $word0);
 $word =  ($word1 == $word) ? $word0 : $word;
 // 拆分漢字
 preg_match_all('#(?:[x00-x7F]|[xC0-xFF][x80-xBF]+)#s', $word, $array, PREG_PATTERN_ORDER);
 $return  = array();
 // 轉換
 foreach ($array[0] as $cc)
 {
  $arr = str_split($cc);
  $bin_str = '';
  foreach ($arr as $value)
  {
   $bin_str .= decbin(ord($value));
  }
  $bin_str = preg_replace('/^.{4}(.{4}).{2}(.{6}).{2}(.{6})$/','$1$2$3', $bin_str);
  $return[] = '&#' . bindec($bin_str) . ';';
 }
 
 return implode('', $return);
}

函數用法:

 代碼如下 複製代碼

$word = '一個漢字轉換成Unicode四位元組編碼的PHP函數。';
echo getUnicode($word);

上述將輸出如下結果:

&#19968&#20010&#27721&#23383&#36716&#25442&#25104&#65333&#65358
&#65353&#65347&#65359&#65348&#65349&#22235&#23383&#33410&#32534
&#30721&#30340&#80&#72&#80&#20989&#25968&#12290

這一組函數可以將漢字轉成unicode編碼,也可以將unicode解碼成漢字。
將漢字轉成Unicode的函數:

 代碼如下 複製代碼

function uni_encode ($word)
{
 $word0 = iconv('gbk', 'utf-8', $word);
 $word1 = iconv('utf-8', 'gbk', $word0);
 $word =  ($word1 == $word) ? $word0 : $word;
    $word = json_encode($word);
    $word = preg_replace_callback('/\\u(w{4})/', create_function('$hex', 'return '&#'.hexdec($hex[1]).';';'), substr($word, 1, strlen($word)-2));
    return $word;
}

對Unicode編碼進行解碼的函數:

 代碼如下 複製代碼

function uni_decode ($uncode)
{
    $word = json_decode(preg_replace_callback('/&#(d{5});/', create_function('$dec', 'return '\u'.dechex($dec[1]);'), '"'.$uncode.'"'));
    return $word;
}

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.