问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

「PHP」怎样将Unicode编码转换为正嗦

发布网友 发布时间:2022-04-06 02:01

我来回答

2个回答

懂视网 时间:2022-04-06 06:22

php转换unicode编码的方法:首先创建一个PHP示例文件;然后通过“unicode_encode”方法将字符串转Unicode编码;最后使用“unicode_decode”方法将Unicode编码转字符串即可。

推荐:《PHP视频教程》

php字符串转Unicode编码, Unicode编码转php字符

百度了很多,都一样, 要么不对, 要不就是只是把字符串的汉字转Unicode

经过多次试验查找, 找到了如下方法,

注意:字符串编码必须是utf-8,如果不是自行用icon转一下

//字符串转Unicode编码
function unicode_encode($strLong) {
 $strArr = preg_split('/(?<!^)(?!$)/u', $strLong);//拆分字符串为数组(含中文字符)
 $resUnicode = '';
 foreach ($strArr as $str)
 {
 $bin_str = '';
 $arr = is_array($str) ? $str : str_split($str);//获取字符内部数组表示,此时$arr应类似array(228, 189, 160)
 foreach ($arr as $value)
 {
 $bin_str .= decbin(ord($value));//转成数字再转成二进制字符串,$bin_str应类似111001001011110110100000,如果是汉字"你"
 }
 $bin_str = preg_replace('/^.{4}(.{4}).{2}(.{6}).{2}(.{6})$/', '$1$2$3', $bin_str);//正则截取, $bin_str应类似0100111101100000,如果是汉字"你"
 $unicode = dechex(bindec($bin_str));//返回unicode十六进制
 $_sup = '';
 for ($i = 0; $i < 4 - strlen($unicode); $i++)
 {
 $_sup .= '0';//补位高字节 0
 }
 $str = 'u' . $_sup . $unicode; //加上 u 返回
 $resUnicode .= $str;
 }
 return $resUnicode;
}
//Unicode编码转字符串方法1
function unicode_decode($name)
{
 // 转换编码,将Unicode编码转换成可以浏览的utf-8编码
 $pattern = '/([w]+)|(u([w]{4}))/i';
 preg_match_all($pattern, $name, $matches);
 if (!empty($matches))
 {
 $name = '';
 for ($j = 0; $j < count($matches[0]); $j++)
 {
 $str = $matches[0][$j];
 if (strpos($str, 'u') === 0)
 {
 $code = base_convert(substr($str, 2, 2), 16, 10);
 $code2 = base_convert(substr($str, 4), 16, 10);
 $c = chr($code).chr($code2);
 $c = iconv('UCS-2', 'UTF-8', $c);
 $name .= $c;
 }
 else
 {
 $name .= $str;
 }
 }
 }
 return $name;
}
//Unicode编码转字符串
function unicode_decode2($str){
 $json = '{"str":"' . $str . '"}';
 $arr = json_decode($json, true);
 if (empty($arr)) return '';
 return $arr['str'];
}
 
echo unicode_encode('若水小站:qq963087326'),'<br>';
//结果u82e5u6c34u5c0fu7ad9u003au0071u0071u0039u0036u0033u0030u0038u0037u0033u0032u0036
 
echo unicode_decode('u82e5u6c34u5c0fu7ad9u003au0071u0071u0039u0036u0033u0030u0038u0037u0033u0032u0036');
//结果若水小站:qq963087326

热心网友 时间:2022-04-06 03:30

直接给你提供PHP代码

// 以下方法可以将Unicode编码的中文转换成utf8编码的中文,且对原来就是utf8编码的中文没影响:

public static function decodeUnicode($str){

return preg_replace_callback('/\\\\u([0-9a-f]{4})/i', create_function('$matches', 'return iconv("UCS-2BE","UTF-8",pack("H*", $matches[1]));'), $str);

}

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
我网贷一万,手续费300,分24期,每期506.67,请问怎么计算月息,和年利率... 多普达手机铃音多普达手机铃声 【车载软件推荐】有车一族必备软件有哪些?好用的车主必备app 我画画时常被说我画画不动脑筋,弱弱的问一句,画画怎样动脑筋? 三星手机如何设置时间在桌面显示? 精确到十分位,要看小数点右边第一位 对吗 要把一个小数精确到十分位,就要看这个小数的( )A.十分位B.百分位C... 黑米算不算粗粮 存定期协议利率选是还是否? 同城上那些卖二手ndsi的是真的吗? 文字转Unicode编码的php代码如何写 php中把汉字转换成unicode方法 怎么将PDF文件转成图片查看 php判断是否是有效IP地址的方法 PHP或者ASP判断IP段调用不同代码,不要跳转 这段html分辨ip跳转的代码是如何实现的 求一段php 判定用户输入网址 跳转到另外一个页面的代码 PHP代码如何实现按IP跳转城市?附代码研究 怎么实现IP地址跳转? 让特定来访IP 跳转到指定网页的 PHP 或者HTML 代码 求PHP代码:根据国家IP网站跳转代码,外国IP就跳转到另一个网站,中国IP就不跳转。 求获取客户端真实ip跳转相应网址的PHP源代码 如何设置PHP网页根据不同国家访问者跳转至不同页面 PHP 根据IP地址控制访问的代码 PHP判断IP地址 PHP根据Ip跳转 php 对象数组 转换为字符串 如图[object Array]转成北京,北京,东城 如何查看linux安装了哪些模块 linux 怎么看php扩展模块是否加载成功 怎么看php7.0.9 curl安装成功 php 如何将unicode码转换成汉字 PHP 如何生成编码为Unicode的txt文件 PHP实时转换成Unicode编码以在Wap1.0手机上正常显示? PHP中如何转换字符串成编码后比较 一个关闭php 转码Unicode的语句? thinkphp怎么利用ajax做无刷新的搜索功能 ThinkPHP +AJAX 联动从数据库无刷新提取数据是出错 thinkphp 模版中怎样调用ajax返回的数据,并进行循环。 thinkphp怎样获取ajax请求数据 thinkPHP中使用Ajax无刷新分页功能,出现怪事 thinkPHP3.2.3如何利用ajax进行无刷新分页呢 thinkphp ajax 无刷新 分页 返回值是整个页面 为什么 我用thinkphp做文章点击量,用ajax怎么实现,下面代码怎么调用在模板里 ThinkPHP框架中使用ajax能不能实时返回数据,一条一条的返回,例如:图 如何加载thinkphp当中的ajax拓展 thinkphp的ajax怎么实现局部刷新 thinkphp的ajax怎么调试才方便有效率 怎么用Thinkphp+jquery实现ajax的提交,接收处理和返回 AJAX向THINKPHP发送数据 THINKPHP怎么老是收不到数据 thinkphp3.2怎么使用ajax