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. Linux下网络服务的安全设置

    Linux下网络服务的安全设置      Linux操作系统由于其良好的稳定性.健壮性.高效性和安全性.正在成为各种网络服务的理想平台.各种网络应用在Linux系统上部有性能卓越的应用,例如,提供We ...

  2. GridView单元格取值显示为&nbsp;

    在通过GridView取一个单元格(cell)的值时,数据库中为NULL,而页面上显示为空格.发现通过gridview.cell[i].text取出来的值为 ,导致获取数据出现问题. 解决方法: 一. ...

  3. 【VC++学习笔记三】控件自绘

    MFC应用程序中,大部分的控件类型都已经被定制好了,即便是修改,也只是小范围内的修改,而很多情况下,我们又需要对界面进行特殊定制,这时,最好的办法就是用CWnd类进行派生,自己生成新的窗体,在WM_P ...

  4. Swift学习笔记(7)--控制流

    1.For循环 //1.条件递增 for var index = 0; index < 3; ++index { println("index is \(index)") } ...

  5. PatentTips - Device virtualization and assignment of interconnect devices

    BACKGROUND Standard computer interconnects, particularly for personal computers or workstations, may ...

  6. jmeter名词解释之聚合报告

    新浪围脖>@o蜗牛快跑o    温馨提示: 1. tps(吞吐量)表征系统性能,系统的好坏能够用这个评估 2. 90%Line是满足需求响应时间的重要指标,假设用户需求说是响应时间不小于5s,那 ...

  7. sqoop 1.4.4-cdh5.1.2高速入门

    一.高速入门 (一)下载安装 1.下载并解压 wget http://archive.cloudera.com/cdh5/cdh/5/sqoop-1.4.4-cdh5.1.2.tar.gz tar - ...

  8. Qt源码编译

    Qt源码编译 eryar@163.com Key words. Qt, 源码编译 1.Introduction 随着Qt版本升级,源码编译出来的库体积越来越大.如果只是用Qt来做GUI,Qt提供的预编 ...

  9. Bounding Volume Hierarchy BVH in OpenCASCADE

    Bounding Volume Hierarchy BVH in OpenCASCADE eryar@163.com Abstract. Bounding Volume Hierarchy(BVH) ...

  10. OSX: 禁止iCloud钥匙链?

    自从10.9有了一个新的功能叫viewlocale=zh_CN">iCloud钥匙串的,就出现了不少的麻烦.一是在10.9.3之前.好多人出现无限循环地要求用户输入Local item ...