Unicode編碼轉(zhuǎn)漢字,漢字轉(zhuǎn)Unicode編碼
來源:易賢網(wǎng) 閱讀:2091 次 日期:2015-04-15 15:11:09
溫馨提示:易賢網(wǎng)小編為您整理了“Unicode編碼轉(zhuǎn)漢字,漢字轉(zhuǎn)Unicode編碼”,方便廣大網(wǎng)友查閱!

Unicode編碼轉(zhuǎn)漢字,漢字轉(zhuǎn)Unicode編碼,具體代碼如下:

<?php

/**

* 漢字轉(zhuǎn)Unicode編碼

* @param string $str 原始漢字的字符串

* @param string $encoding 原始漢字的編碼

* @param boot $ishex 是否為十六進(jìn)制表示(支持十六進(jìn)制和十進(jìn)制)

* @param string $prefix 編碼后的前綴

* @param string $postfix 編碼后的后綴

*/

function unicode_encode($str, $encoding = 'UTF-8', $ishex = false, $prefix = '&#', $postfix = ';') {

$str = iconv($encoding, 'UCS-2', $str);

$arrstr = str_split($str, 2);

$unistr = '';

for($i = 0, $len = count($arrstr); $i < $len; $i++) {

$dec = $ishex ? bin2hex($arrstr[$i]) : hexdec(bin2hex($arrstr[$i]));

$unistr .= $prefix . $dec . $postfix;

}

return $unistr;

}

/**

* Unicode編碼轉(zhuǎn)漢字

* @param string $str Unicode編碼的字符串

* @param string $decoding 原始漢字的編碼

* @param boot $ishex 是否為十六進(jìn)制表示(支持十六進(jìn)制和十進(jìn)制)

* @param string $prefix 編碼后的前綴

* @param string $postfix 編碼后的后綴

*/

function unicode_decode($unistr, $encoding = 'UTF-8', $ishex = false, $prefix = '&#', $postfix = ';') {

$arruni = explode($prefix, $unistr);

$unistr = '';

for($i = 1, $len = count($arruni); $i < $len; $i++) {

if (strlen($postfix) > 0) {

$arruni[$i] = substr($arruni[$i], 0, strlen($arruni[$i]) - strlen($postfix));

}

$temp = $ishex ? hexdec($arruni[$i]) : intval($arruni[$i]);

$unistr .= ($temp < 256) ? chr(0) . chr($temp) : chr($temp / 256) . chr($temp % 256);

}

return iconv('UCS-2', $encoding, $unistr);

}

header('Content-Type: text/html; charset=UTF-8');

// UTF-8字符串測(cè)試

$str = '龕龖龗龘龍龔龕龜龝龞龜龠龡龢龣龤龥';

var_dump($str);

// 簡(jiǎn)單的

$uni_str = mb_convert_encoding($str, 'HTML-ENTITIES', 'UTF-8');

var_dump($uni_str);

$str3 = mb_convert_encoding($uni_str, 'UTF-8', 'HTML-ENTITIES');

var_dump($str3);

$uni_str = unicode_encode($str);

var_dump($uni_str); // &#40853;&#40854;&#40855;&#40856;&#40857;&#40858;&#40859;&#40860;&#40861;&#40862;&#40863;&#40864;&#40865;&#40866;&#40867;&#40868;&#40869;

$str2 = unicode_decode($uni_str);

var_dump($str2); // 龕龖龗龘龍龔龕龜龝龞龜龠龡龢龣龤龥

$uni_str = unicode_encode($str, 'UTF-8', true, '\u', '');

var_dump($uni_str); // \u9f95\u9f96\u9f97\u9f98\u9f99\u9f9a\u9f9b\u9f9c\u9f9d\u9f9e\u9f9f\u9fa0\u9fa1\u9fa2\u9fa3\u9fa4\u9fa5

$str2 = unicode_decode($uni_str, 'UTF-8', true, '\u', '');

var_dump($str2); // 龕龖龗龘龍龔龕龜龝龞龜龠龡龢龣龤龥

// GBK字符串測(cè)試

$str = 'PHP漢字轉(zhuǎn)UNICODE';

$str = iconv('UTF-8', 'GBK//IGNORE', $str);

$uni_str = unicode_encode($str, 'GBK');

var_dump($uni_str); // &#80;&#72;&#80;&#27721;&#23383;&#36716;&#85;&#78;&#73;&#67;&#79;&#68;&#69;

$str2 = unicode_decode($uni_str, 'GBK');

$str2 = iconv('GBK', 'UTF-8', $str2);

var_dump($str2); // PHP漢字轉(zhuǎn)UNICODE

$uni_str = unicode_encode($str, 'GBK', true, '\u', '');

var_dump($uni_str); // \u0050\u0048\u0050\u6c49\u5b57\u8f6c\u0055\u004e\u0049\u0043\u004f\u0044\u0045

$str2 = unicode_decode($uni_str, 'GBK', true, '\u', '');

$str2 = iconv('GBK', 'UTF-8', $str2);

var_dump($str2); // PHP漢字轉(zhuǎn)UNICODE

更多信息請(qǐng)查看IT技術(shù)專欄

更多信息請(qǐng)查看網(wǎng)絡(luò)編程
易賢網(wǎng)手機(jī)網(wǎng)站地址:Unicode編碼轉(zhuǎn)漢字,漢字轉(zhuǎn)Unicode編碼
由于各方面情況的不斷調(diào)整與變化,易賢網(wǎng)提供的所有考試信息和咨詢回復(fù)僅供參考,敬請(qǐng)考生以權(quán)威部門公布的正式信息和咨詢?yōu)闇?zhǔn)!

2025國(guó)考·省考課程試聽報(bào)名

  • 報(bào)班類型
  • 姓名
  • 手機(jī)號(hào)
  • 驗(yàn)證碼
關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡(jiǎn)要咨詢 | 簡(jiǎn)要咨詢須知 | 新媒體/短視頻平臺(tái) | 手機(jī)站點(diǎn) | 投訴建議
工業(yè)和信息化部備案號(hào):滇ICP備2023014141號(hào)-1 云南省教育廳備案號(hào):云教ICP備0901021 滇公網(wǎng)安備53010202001879號(hào) 人力資源服務(wù)許可證:(云)人服證字(2023)第0102001523號(hào)
云南網(wǎng)警備案專用圖標(biāo)
聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關(guān)注公眾號(hào):hfpxwx
咨詢QQ:1093837350(9:00—18:00)版權(quán)所有:易賢網(wǎng)
云南網(wǎng)警報(bào)警專用圖標(biāo)