http://blog.csdn.net/f438952359/article/details/7481267

HTML实体与网页编码(汉字转化为了html实体) .

htmlencodingfunctionstring正则表达式output汉字都转化为了html实体(十进制表示的Unicode编码),这样做的好处就是不管网页的编码是什么,都可以正常的显示汉字,而不会出现乱码,当然也适用于其他字符集。

在php中我们可以用mbstring的mb_convert_encoding函数实现这个正向及反向的转化。

如:

mb_convert_encoding ("你好", "HTML-ENTITIES", "gb2312");    //输出:你好

mb_convert_encoding ("你好", "gb2312", "HTML-ENTITIES");    //输出:你好

 

如果需要对整个页面转化,则只需要在php文件的头部加上这三行代码:

mb_internal_encoding("gb2312");  // 这里的gb2312是你网站原来的编码

mb_http_output("HTML-ENTITIES");

ob_start('mb_output_handler');

Asp版 可以用下面这个函数来实现这个转化:

Function htmlentities(str)

    For i = 1 to Len(str)

        char = mid(str, i, 1)

        If AscW(char) > 0 then

            htmlentities = htmlentities & "&#" & Ascw(char) & ";"

        Else

            htmlentities = htmlentities & "&#" & (65536 + ascW(char)) & ";"

        End if

    Next

End Function

JS 版

function htmlentities(str)

 {

      var r = "";

      for( i=0; i<str.length; i++ )

      {

           temp = str.charCodeAt(i);

           r += "&#"+temp+";";

      }

     //  也可以用一句正则表达式解决

     // r = str.replace(/[\d\D]/g, function($0) { return "&#" + $0.charCodeAt(0) + ";"; });

     return r;

 }

asp.net (c#) 版

 private string GetHtmlEntities(string str)

  {

      string r = string.Empty;

       for (int i = 0; i < str.Length; i++)

       {

            r += "&#"+Char.ConvertToUtf32(str,i)+";";

       }

       return r;

 }

======================================================================

http://blog.gxnews.com.cn/u/11/a/1140713.html

js转为实体字符和php将实体字符转为汉字的方法 2013-09-10 16:02:58

js将汉字转为实体字符:

function convert2Entity(str) {

    var len = str.length;

    var re = [];

    for (var i = 0; i < len; i++) {      var code = str.charCodeAt(i);       if (code > 256) {


            re.push('&#' + code + ';');

        } else {

            re.push(str.charAt(i));

        }

    }

    return re.join('');

}

php将实体字符转为utf-8汉字的方法:

function entity2utf8onechar($unicode_c){

    $unicode_c_val = intval($unicode_c);

    $f=0x80; // 10000000

    $str = "";

    // U-00000000 - U-0000007F:   0xxxxxxx

    if($unicode_c_val <= 0x7F){      $str = chr($unicode_c_val);     }   //U-00000080 - U-000007FF:  110xxxxx 10xxxxxx   else if($unicode_c_val >= 0x80 && $unicode_c_val <= 0x7FF){       $h=0xC0; // 11000000        $c1 = $unicode_c_val >> 6 | $h;


        $c2 = ($unicode_c_val & 0x3F) | $f;

        $str = chr($c1).chr($c2);

    }

    //U-00000800 - U-0000FFFF:  1110xxxx 10xxxxxx 10xxxxxx

    else if($unicode_c_val >= 0x800 && $unicode_c_val <= 0xFFFF){         $h=0xE0; // 11100000        $c1 = $unicode_c_val >> 12 | $h;


        $c2 = (($unicode_c_val & 0xFC0) >> 6) | $f;

        $c3 = ($unicode_c_val & 0x3F) | $f;

        $str=chr($c1).chr($c2).chr($c3);

    }

    //U-00010000 - U-001FFFFF:  11110xxx 10xxxxxx 10xxxxxx 10xxxxxx

    else if($unicode_c_val >= 0x10000 && $unicode_c_val <= 0x1FFFFF){         $h=0xF0; // 11110000        $c1 = $unicode_c_val >> 18 | $h;


        $c2 = (($unicode_c_val & 0x3F000) >>12) | $f;

        $c3 = (($unicode_c_val & 0xFC0) >>6) | $f;

        $c4 = ($unicode_c_val & 0x3F) | $f;

        $str = chr($c1).chr($c2).chr($c3).chr($c4);

    }

    //U-00200000 - U-03FFFFFF:  111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx

    else if($unicode_c_val >= 0x200000 && $unicode_c_val <= 0x3FFFFFF){       $h=0xF8; // 11111000        $c1 = $unicode_c_val >> 24 | $h;


        $c2 = (($unicode_c_val & 0xFC0000)>>18) | $f;

        $c3 = (($unicode_c_val & 0x3F000) >>12) | $f;

        $c4 = (($unicode_c_val & 0xFC0) >>6) | $f;

        $c5 = ($unicode_c_val & 0x3F) | $f;

        $str = chr($c1).chr($c2).chr($c3).chr($c4).chr($c5);

    }

    //U-04000000 - U-7FFFFFFF:  1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx


    else if($unicode_c_val >= 0x4000000 && $unicode_c_val <= 0x7FFFFFFF){         $h=0xFC; // 11111100        $c1 = $unicode_c_val >> 30 | $h;


        $c2 = (($unicode_c_val & 0x3F000000)>>24) | $f;

        $c3 = (($unicode_c_val & 0xFC0000)>>18) | $f;

        $c4 = (($unicode_c_val & 0x3F000) >>12) | $f;

        $c5 = (($unicode_c_val & 0xFC0) >>6) | $f;

        $c6 = ($unicode_c_val & 0x3F) | $f;

        $str = chr($c1).chr($c2).chr($c3).chr($c4).chr($c5).chr($c6);

    }

    return $str;

}

function entities2utf8($unicode_c){

    $unicode_c = preg_replace("/\&\#([\da-f]{5})\;/es", "entity2utf8onechar('\\1')", $unicode_c);


    return $unicode_c;

}

php将unicode转为utf-8方法

在php5.0及以上版本中提供了json_encode, json_decode方法。在使用json_encode变量的时候,如果变量里含有中文的话,会将中文转为unicode格式。所以在想是否可以通过json_decode将unicode转为中文呢?实际测试发现是可以的,但对单一的字符串发现有些问题。

对于简单的字符串,发现有时候使用json_decode转的化,结果直接为空了。但将字符串替换为数组然后在转就可以了。下面就有了下面封装的代码。

function unicode2utf8($str){

        if(!$str) return $str;

        $decode = json_decode($str);

        if($decode) return $decode;

        $str = '["' . $str . '"]';

        $decode = json_decode($str);

        if(count($decode) == 1){

                return $decode[0];

        }

        return $str;

}

使用这个方法可以很好的将unicode编码转为utf-8编码。

HTML实体与网页编码(汉字转化为了html实体) .的更多相关文章

  1. 浏览器正确理解和使用GBK及UTF-8(UTF-8 + BOM)网页编码

    网页编码英文译为web page encoding.是在网页中指定其特定的字符编码格式的库. GBK是国家标准GB2312基础上扩容后兼容GB2312的标准. GBK的文字编码是用双字节来表示的.即不 ...

  2. C# 将汉字转化成拼音

    本文来自http://www.cnblogs.com/yazdao/archive/2011/06/04/2072488.html 首先下载Visual Studio International Pa ...

  3. [Python网络编程]gevent httpclient以及网页编码

    之前看到geventhttpclient这个项目,https://github.com/gwik/geventhttpclient,官方文档说非常快,因为响应使用了C的解析,所以我一直想把这玩意用到项 ...

  4. spider JAVA如何判断网页编码 (转载)

    原文链接 http://www.cnblogs.com/nanxin/archive/2013/03/27/2984320.html 前言 最近做一个搜索项目,需要爬取很多网站获取需要的信息.在爬取网 ...

  5. c#把汉字转化成全拼音函数(全拼)

    /// <summary>        /// 把汉字转换成拼音(全拼)        /// </summary>        /// <param name=&q ...

  6. HTML5 汉字转化为拼音,带读声,穷举多音字

    1,没别的,像这种没有规则的转化,我们首先需要一个字典文件,字典文件的完整度,决定了转化的成功率与精确度 2,笔者收集了较为完整的字典文件,已上传到博客园,欢迎补充  =>  https://b ...

  7. 利用python将表格中的汉字转化为拼音

    缺少包时用pip install 进行安装,例如: pip install xlsxwriter   完成代码如下: #!/usr/bin/python #-*-coding:utf-8-*- #fr ...

  8. .NET 拼音汉字转化(全面)

    引言 这是一个.NET 用C#语言编写的  拼音转汉字类,考虑到有很多拼音转汉字,但是试用过发现大部分有很多生僻字都没有办法显示.在此分享一个支持绝大多数的较为全面的拼音汉字转化帮助类.不多说,代码附 ...

  9. 解决Chrome网页编码显示乱码的问题

    解决Chrome网页编码显示乱码的问题 记得在没多久以前,Google Chrome上面出现编码显示问题时,可以手动来调整网页编码问题,可是好像在Chrome 55.0版以后就不再提供手动调整编码,所 ...

随机推荐

  1. POJ - 3842 An Industrial Spy dfs(水)

    题意:给你一串数字,最少一个,最多七个,问用这里面的数字能组成多少素数,不重复. 思路:之前还遍历10000000的每一个素数,结果超时,后来发现直接dfs就可以了,只是标记一下做过的数. #prag ...

  2. Day2代码

    #include<cstdio> #include<cstring> #include<cmath> #include<algorithm> #defi ...

  3. js实现日期转换方法

    //方法1function timeStamp1String(time) { var datetime = new Date(); datetime.setTime(time); var year = ...

  4. 36Kr众筹项目比呀比biyabi,调查分析研究报告,背后资方势力的关系梳理

    36Kr众筹项目比呀比biyabi调查报告 个层次的评价.   变革家-比呀比拆解报告:http://biangejia.com/archives/12653 8.其它 没有通过微信,参加路演,有点遗 ...

  5. Swift学习笔记(12)--数组和字典的复制

    Swift中,数组Array和字典Dictionary是用结构来实现的,但是数组与字典和其它结构在进行赋值或者作为参数传递给函数的时候有一些不同. 并且数组和字典的这些操作,又与Foundation中 ...

  6. LeetCode Implement strStr()(Sunday算法)

    LeetCode解题之Implement strStr() 原题 实现字符串子串匹配函数strStr(). 假设字符串A是字符串B的子串.则返回A在B中首次出现的地址.否则返回-1. 注意点: - 空 ...

  7. [UnityUI]循环滑动列表

    效果图: 使用的是UGUI和DOTween 当中比較关键的是循环滑动和层次排序: 1.循环滑动:这里先如果显示五张图片.分别标记为0,1,2,3,4,那么当向左滑动时,序列就变为1,2,3,4,0,这 ...

  8. 认识Linux瘦客户机

           (本文完整版见http://os.51cto.com/art/201001/181448.htm)        随着Linux的发展,以及网络计算技术的发展和逐步深入的云计算,基于Li ...

  9. 适合ASP.NET Web API使用的场景

    富客户端web应用程序:ASP.NET Web API适合大量使用AJAX调用的富客户端应用程序,如Silverlight应用程序,基于Adobe Flash的应用程序或单页应用程序(SPA)等. 本 ...

  10. API集合开发文档

    百度翻译api https://www.cnblogs.com/DevilX5/p/7079470.html 实现QQ第三方登录.网站接入 http://blog.csdn.net/u01067894 ...