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. 洛谷P1919 【模板】A*B Problem升级版(FFT快速傅里叶)

    题目描述 给出两个n位10进制整数x和y,你需要计算x*y. 输入输出格式 输入格式: 第一行一个正整数n. 第二行描述一个位数为n的正整数x. 第三行描述一个位数为n的正整数y. 输出格式: 输出一 ...

  2. Linux系统病毒防治

    Linux系统病毒防治 一.Linux病毒的历史 1996年出现的Staog是Linux系统下的第一个病毒,它出自澳大利亚一个叫VLAD的组织.Staog病毒是用汇编语言编写,专门感染二进制文件,并通 ...

  3. 在C# 获取当前应用网址

    /// <summary>        /// 获取当前应用网址        /// </summary>        /// <returns></r ...

  4. tomcat-servlet-client

    headfirst的一个图,但解决了我的一个疑问

  5. 我在看着你呢——shiro学习

    说实话开学第一周效率并不高.项目该结的都差不多结了,看来这毛病我是养成了.项目忙的要死的时候,想休息想停一停就不断往下扔包袱.一下没项目了开学了,反倒开始手痒,捉摸着写点什么代码.马上我的小mac就要 ...

  6. 【Henu ACM Round#15 A】 A and B and Chess

    [链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 统计大写和小写的个数. 比较答案.输出即可. [代码] #include <bits/stdc++.h> using n ...

  7. linux杂谈(十八):DNSserver的配置(一)

    1.DNSserver简单介绍 域名系统(英文:Domain Name System,縮寫:DNS)是因特网的一项服务. 它作为将域名和IP地址相互映射的一个分布式数据库,可以使人更方便的訪问互联网. ...

  8. Android 学习笔记进阶十二之裁截图片

    package xiaosi.cut; import java.io.File; import android.app.Activity; import android.content.Intent; ...

  9. smarty课程---最最最简单的smarty例子

    smarty课程---最最最简单的smarty例子 一.总结 一句话总结:其实所有的模板引擎的工作原理是差不多的,无非就是在php程序里面用正则匹配将模板里面的标签替换为php代码从而将两者混合为一个 ...

  10. SAR(遥感、卫星) 图像常用数据集

    Brazilian Coffee Scenes数据集较小,5MB左右: UC Merced Land Use Dataset(数据集规模较大,300MB+) MSTAR public targets ...