下面來總結一些常用的漢字轉換成Unicode編碼PHP程序實現代碼,我們只要了解到Unicode編碼與gbk編碼之間的內置轉換原理即可了.
漢字轉換成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);
- /*
- 上述將輸出如下結果:
- 一个汉字转换成Un
- icode四字节编
- 码的PHP函数。
- */
這一組函數可以將漢字轉成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;
- }
新聞熱點
疑難解答