资讯专栏INFORMATION COLUMN

编码转换:unicode(10进制,〹)转utf8

vslam / 1183人阅读

摘要:遇到问题我需要把好大一坨类似这样的东西转化成可读的编码。最后跑到博主提到的官方文档里面去找评论,找到博主说的这个评论,发现博主粘贴的时候估计格式变了,导致不能使用,下面附上正确的转换函数。

遇到问题:我需要把好大一坨类似“ 凡 ;客 ; ”这样的东西转化成可读的utf8编码。
例如 客 ; 代表「客」这个字

一步一步探索:

网上找了很多代码来试验,都以失败告终

直接google搜索 客 ; 变成了google 搜索 「客」这个关键字了

重新google后得知,该类型编码为html页面中可以正常显示为汉字的unicode的10进制表示形式

再次搜索,发现前辈的文章:http://blog.csdn.net/linvo/article/details/6221913, 里面提到

  

再次翻手册,在utf8_encode函数的评论中看到了一个有用的回复,试验成功!(PS:带评论的手册真他喵的好用~)

直接copy博主的函数使用,发现失败。最后跑到博主提到的 utf8_encode 官方文档里面去找评论,找到博主说的这个评论,发现博主粘贴的时候估计格式变了,导致不能使用,下面附上正确的转换函数。

php    function html_to_utf8 ($data)
        {
            $data=htmlspecialchars_decode(htmlspecialchars_decode($data));
        return preg_replace("/&#([0-9]{3,10});/e", "_html_to_utf8("1")", $data);
        }

    function _html_to_utf8($data) {
        if ($data > 127) {
            $i = 5;
            while ( ($i --) > 0 ) {
                if ($data != ($a = $data % ($p = pow ( 64, $i )))) {
                    $ret = chr ( base_convert ( str_pad ( str_repeat ( 1, $i + 1 ), 8, "0" ), 2, 10 ) + (($data - $a) / $p) );
                    for($i; $i > 0; $i --)
                        $ret .= chr ( 128 + ((($data % pow ( 64, $i )) - ($data % ($p = pow ( 64, $i - 1 )))) / $p) );
                    break;
                }
            }
        } else
            $ret = "&#$data;";
        return $ret;
    }

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/20902.html

相关文章

  • 记一次由BOM引起的bug

    摘要:今天团队小伙伴给了我一个配置文件,可以用如下替代毕竟内容不是重点考虑到这个并不需要常驻,就没有用来引用,因为模块的缓存机制,势必会导致内存泄漏问题的发生,就采取了以下方式但是诡异的事情发生了,竟然报错了此时一脸懵逼,就用了的方式试了一下发现 bug 今天团队小伙伴给了我一个json配置文件,可以用如下替代(毕竟内容不是重点): { text: this is a example...

    cc17 评论0 收藏0
  • PHP实现Unicode和Utf-8编码的互相

    摘要:假如在中汉字你的编码为,把它转换为二进制为,然后按照的方法进行转换。在将所得到的结果左移位与最高字节所得的结果取或,第二位就这样完成了,得到的结果为。 最近恰好要用到unicode编码的转换,就去查了一下php的库函数,居然没找到一个函数可以对字符串进行Unicode的编码和解码!也罢,找不到的话就自己实现一下了。。。 Unicode和Utf-8编码的区别 Unicode是...

    qianfeng 评论0 收藏0
  • webSocket 二进制传输基础准备-UTF-16和UTF-8Unicode

    摘要:前言今天来学习转,转以达成之间的互转。基本利用按位操作符符号运算符就可以完成。今天这里只做转,转,后续转换可以看前面的文章。基础准备工作转转转为了更好的理解,我们来使用转那一期的结果来进行转,转 前言 今天来学习UTF8转Unicode,UTF16转Unicode以达成UTF8,UTF16之间的互转。提炼成函数的公式我并没有放出来,我的目的只是为了更加理解 字符编码之间的关系。如果你需...

    张春雷 评论0 收藏0
  • 通过javascript进行UTF-8编码

    摘要:通过进行编码的字符集程序是使用字符集编写的。这种情况下,我们必须就要通过程序将的字符串转为编码的字符串。英文占个字符,汉字占个字符然而,的编码结构长度是根据某单个字符的大小来决定长度有多少。把英文字母转为编码。 通过javascript进行UTF-8编码 javascript的字符集: javascript程序是使用Unicode字符集编写的。Unicode是ASCII和Latin-...

    jone5679 评论0 收藏0
  • WebSocket系列之字符串如何与二进制数据间进行互相

    摘要:总结通过使用和,我们能够在数据和二进制数据中进行互相转换。下一篇系列相关的博客,将会介绍如何通过来向后端传递二进制数据,以及如何处理通过收到的二进制数据。 概述 上一篇博客我们说到了如何进行数字类型(如Short、Int、Long类型)如何在JavaScript中进行二进制转换,如果感兴趣的可以可以阅读本系列第二篇博客——WebSocket系列之JavaScript中数字数据如何转换为...

    stackfing 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<