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. ssh 免密及加密远程脚本实现

    windows_host文件路径:C:\Windows\System32\drivers\etc ssh-copy-id -i ~/.ssh/id-rsa.pub root@xxxxxxx 免密验证操 ...

  2. 【转】Android应用底部导航栏(选项卡)实例

    现在很多android的应用都采用底部导航栏的功能,这样可以使得用户在使用过程中随意切换不同的页面,现在我采用TabHost组件来自定义一个底部的导航栏的功能. 我们先看下该demo实例的框架图: 其 ...

  3. Java 学习(14):接口 & 包(设置 CLASSPATH 系统变量)

    Java 接口(英文:Interface) 定义:在JAVA编程语言中,接口是一个抽象类型,是抽象方法的集合,接口通常以 interface 来声明. 一个类通过继承接口的方式,从而来继承接口的抽象方 ...

  4. Introducing ASLR for FreeBSD

    Shawn WebbOliver Pinter10 July 2014http://www.hardenedbsd.org/ [ 1. Introduction ]Security in FreeBS ...

  5. Redisclient连接方式Hiredis简单封装使用,连接池、屏蔽连接细节

    工作须要对Hiredis进行了简单封装,实现功能: 1.API进行统一,对外仅仅提供一个接口. 2.屏蔽上层应用对连接的细节处理: 3.底层採用队列的方式保持连接池,保存连接会话. 4.重连时採用时间 ...

  6. xml中控件调用构造方法

    系统控件view有三个构造方法,分别如下 public DrawView(Context context) { super(context); } public DrawView(Context co ...

  7. es6 --- var const let

    var  const   let  区别 今天第一次遇到const定义的变量,查阅了相关资料整理了这篇文章.主要内容是:js中三种定义变量的方式const, var, let的区别. 1. const ...

  8. C# 返回分页查询的总页数

    /// <summary> /// 返回分页查询操作的的总页数 /// </summary> /// <param name="count">总 ...

  9. 洛谷——P1314 聪明的质监员

    https://www.luogu.org/problem/show?pid=1314 题目描述 小T 是一名质量监督员,最近负责检验一批矿产的质量.这批矿产共有 n 个矿石,从 1到n 逐一编号,每 ...

  10. hdu 1384 Intervals (差分约束)

    /* 给你 n 个区间 [Ai, Bi],要求从每一个区间中至少选出 Ci 个数出来组成一个序列 问:满足上面条件的序列的最短长度是多少? 则对于 不等式 f(b)-f(a)>=c,建立 一条 ...