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 1191 记忆化搜索

    (我是不会告诉你我是抄的http://www.cnblogs.com/scau20110726/archive/2013/02/27/2936050.html这个人的) 一开始没有想到要化一下方差的式 ...

  2. jQuery - 设置内容和属性 设置内容 - text()、html() 以及 val() , 设置属性 - attr()

    jQuery - 设置内容和属性  设置内容 - text().html() 以及 val() text() - 设置或返回所选元素的文本内容 html() - 设置或返回所选元素的内容(包括 HTM ...

  3. SQL解析XML文件

    DECLARE @idoc int DECLARE @doc varchar(max) SET @doc ='<?xml version="1.0" encoding=&qu ...

  4. 联想 U410 超极本启用加速硬盘方法

    安装步骤: 方法一: 使用raid1方法 (此方法未安装过) 方法二:  普通安装后,使用RST加速 1.改BIOS , 为AHCI启动    , 2.安装好系统后,下载RST软件并安装 3.改BIO ...

  5. 在Ubuntu14.04中安装Py3和切换Py2和Py3环境

    前几天小编给大家分享了如何安装Ubuntu14.04系统,感兴趣的小伙伴可以戳这篇文章:手把手教你在VMware虚拟机中安装Ubuntu14.04系统.今天小编给大家分享一下在Ubuntu14.04系 ...

  6. 好吧,左小波出山了——ie8兼容indexOf问题

    我,还是一个不懂世事的毛头小子,第一次写博.万事开头难,没事咱慢慢来.咳,练文笔吗.我觉得写东西最锻炼逻辑思维,我是一个不善于表达的人,可能是程序员的通病,但你看看人家王小波,八九十年代的作家兼职程序 ...

  7. <QT障碍之路>qt中使用串口类接收数据不完整

    问题:当用QT中的serial->readAll()的时候,不会把全部的数据一次性都读取出来,而是阶段性的.原因是因为当串口有信号时候,readyRead()信号就会被抛出,那么一帧完整的数据帧 ...

  8. IBM将收购Linux发行商红帽公司,继续发力云计算市场

    10月29日凌晨消息,IBM和Red Hat当地时间星期日联合宣布,IBM将以340亿美元收购红帽公司(Red Hat).根据两家公司发表的一份联合声明,IBM将以每股190美元的价格,以现金方式收购 ...

  9. SpringBoot 增加 拦截器 判断是否登录

    1.创建拦截器 package com.example.demo.interceptor; import org.slf4j.Logger; import org.slf4j.LoggerFactor ...

  10. C# ArcGIS Engine 使当前选中的操作失效(清除当前鼠标事件)

    问题描述: 前提:我用的ENGINE9.3开发,拖了一个ToolbarControl控件,加了一些常用操作的工具(平移,放大,缩小)在上边. 问题:我做了一个增加点的按钮.当我平移完地图之后,点击增加 ...