php获取unicode编码,PHP Unicode编码相互转换

/**

* $str 原始中文字符串

* $encoding 原始字符串的编码,默认utf-8

* $prefix 编码后的前缀,默认""

* $postfix 编码后的后缀,默认";"

*/

function unicode_encode($str, $encoding = 'utf-8', $prefix = '', $postfix = ';') {

//将字符串拆分

$str = iconv("UTF-8", "gb2312", $str);

$cind = 0;

$arr_cont = array();

for ($i = 0; $i 

if (strlen(substr($str, $cind, 1)) > 0) {

if (ord(substr($str, $cind, 1)) 

array_push($arr_cont, substr($str, $cind, 1));

$cind++;

} else {

array_push($arr_cont, substr($str, $cind, 2));

$cind+=2;

}

}

}

foreach ($arr_cont as &$row) {

$row = iconv("gb2312", "UTF-8", $row);

}

//转换Unicode码

foreach ($arr_cont as $key => $value) {

$unicodestr.= $prefix . base_convert(bin2hex(iconv('utf-8', 'UCS-4', $value)), 16, 10) .$postfix;

}

return $unicodestr;

}

/**

* $str Unicode编码后的字符串

* $decoding 原始字符串的编码,默认utf-8

* $prefix 编码字符串的前缀,默认""

* $postfix 编码字符串的后缀,默认";"

*/

function unicode_decode($unistr, $encoding = 'utf-8', $prefix = '', $postfix = ';') {

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

$unistr = '';

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

if (strlen($postfix) > 0) {

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

}

$temp = intval($arruni[$i]);

$unistr .= ($temp 

}

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

}

$str = "PHP二次开发:www.php2.cc";

$unistr = unicode_encode($str);

$unistr2 = unicode_decode($unistr);

echo $unistr . '
';

echo $unistr2 . '
';

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

$unistr2 = unicode_decode($unistr,'GBK','\\u');

echo $unistr . '
';

echo $unistr2 . '
';

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: UNICODE 编码和解码可以通过 PHP 内置的函数 mb_convert_encoding 和 iconv 来实现。 编码: ``` $str = '你好'; $encoded = mb_convert_encoding($str, 'UTF-16', 'UTF-8'); ``` 解码: ``` $decoded = mb_convert_encoding($encoded, 'UTF-8', 'UTF-16'); ``` 或者: 编码: ``` $str = '你好'; $encoded = iconv('UTF-8', 'UTF-16', $str); ``` 解码: ``` $decoded = iconv('UTF-16', 'UTF-8', $encoded); ``` ### 回答2: 在PHP中,可以使用内置的函数来实现UNICODE编码和解码。 对于编码: 1. 首先,我们需要将字符串转换为UTF-8编码,以确保包含任何特殊字符。 2. 然后,使用mb_convert_encoding函数将UTF-8编码的字符串转换Unicode。 3. 最后,使用bin2hex函数将Unicode编码的字符串转换Unicode编码的16进制表示。 下面是一个示例代码片段,用于在PHP中实现UNICODE编码: ```php $str = "你好,世界!"; // 要编码的字符串 // 转换为UTF-8编码 $str = mb_convert_encoding($str, 'UTF-8'); // 将UTF-8编码的字符串转换Unicode $str_unicode = mb_convert_encoding($str, 'UCS-2LE', 'UTF-8'); // 将Unicode编码的字符串转换Unicode编码的16进制表示 $str_unicode_hex = bin2hex($str_unicode); echo $str_unicode_hex; // 输出编码后的字符串 ``` 对于解码: 1. 首先,使用hex2bin函数将Unicode编码的16进制表示转换Unicode编码的字符串。 2. 然后,使用mb_convert_encoding函数将Unicode编码的字符串转换为UTF-8编码的字符串。 下面是一个示例代码片段,用于在PHP中实现UNICODE解码: ```php $str_unicode_hex = "4f60597d65252c4e世界21"; // 要解码的Unicode编码的16进制表示 // 将Unicode编码的16进制表示转换Unicode编码的字符串 $str_unicode = hex2bin($str_unicode_hex); // 将Unicode编码的字符串转换为UTF-8编码的字符串 $str = mb_convert_encoding($str_unicode, 'UTF-8', 'UCS-2LE'); echo $str; // 输出解码后的字符串 ``` 通过以上代码示例,可以使用PHP实现UNICODE编码和解码。 ### 回答3: 使用PHP实现UNICODE编码和解码可以通过以下步骤实现: 1. 编码:将字符串转换UNICODE编码。 可以使用PHP内置的函数 `mb_convert_encoding` 来实现。使用这个函数,你可以将字符串从指定的字符集转换UNICODE编码。例如,将一个UTF-8编码的字符串转换UNICODE编码,可以使用以下代码: ```php $str = '你好'; $unicodeStr = mb_convert_encoding($str, 'unicode', 'utf-8'); echo $unicodeStr; ``` 这段代码将输出:`\u4f60\u597d`,其中`\u4f60`表示字符"你"的UNICODE编码,`\u597d`表示字符"好"的UNICODE编码。 2. 解码:将UNICODE编码转换为字符串。 可以使用PHP内置的函数 `json_decode` 来将UNICODE编码转换为字符串。 `json_decode` 函数默认会将UNICODE编码的字符串转换为UTF-8编码的字符串。例如,将一个UNICODE编码的字符串`\u4f60\u597d`转换为UTF-8编码的字符串,可以使用以下代码: ```php $str = '\u4f60\u597d'; $decodedStr = json_decode('"' . $str . '"'); echo $decodedStr; ``` 这段代码将输出:"你好"。 这就是使用PHP实现UNICODE编码和解码的基本步骤。你可以根据需要对其进行扩展和优化。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值