php汉字转Unicode编码函数
/**
* $str 原始字符串
* $encoding 原始字符串的编码,默认GBK
* $prefix 编码后的前缀,默认"&#"
* $postfix 编码后的后缀,默认";"
*/
function unicode_encode($str, $encoding = 'GBK', $prefix = '&#', $postfix = ';') {
$str = iconv($encoding, 'UCS-2', $str);
$arrstr = str_split($str, );
$unistr = '';
for($i = , $len = count($arrstr); $i < $len; $i++) {
$dec = hexdec(bin2hex($arrstr[$i]));
$unistr .= $prefix . $dec . $postfix;
}
return $unistr;
}
/**
* $str Unicode编码后的字符串
* $encoding 原始字符串的编码,默认GBK
* $prefix 编码字符串的前缀,默认"&#"
* $postfix 编码字符串的后缀,默认";"
*/
function unicode_decode($unistr, $encoding = 'GBK', $prefix = '&#', $postfix = ';') {
$arruni = explode($prefix, $unistr);
$unistr = '';
for($i = , $len = count($arruni); $i < $len; $i++) {
if (strlen($postfix) > ) {
$arruni[$i] = substr($arruni[$i], , strlen($arruni[$i]) - strlen($postfix));
}
$temp = intval($arruni[$i]);
$unistr .= ($temp < ) ? chr() . chr($temp) : chr($temp / ) . chr($temp % );
}
return iconv('UCS-2', $encoding, $unistr);
} 使用:
//GBK字符串测试
$str = '<b>哈哈</b>';
echo $str.'<br />';
$unistr = unicode_encode($str);
echo $unistr.'<br />'; // <b>哈哈</b>
$str2 = unicode_decode($unistr);
echo $str2.'<br />'; //<b>哈哈</b>
//UTF-8字符串测试
$utf8_str = iconv('GBK', 'UTF-8', $str);
echo $utf8_str.'<br />'; // <b>鍝堝搱</b> 注:UTF在GBK下显示的乱码!可切换浏览器的编码测试
$utf8_unistr = unicode_encode($utf8_str, 'UTF-8');
echo $utf8_unistr.'<br />'; // <b>哈哈</b>
$utf8_str2 = unicode_decode($utf8_unistr, 'UTF-8');
echo $utf8_str2.'<br />'; // <b>鍝堝搱</b>
//其它后缀、前缀测试
$prefix_unistr = unicode_encode($str, 'GBK', "\\u", '');
echo $prefix_unistr.'<br />'; // \u60\u98\u62\u21704\u21704\u60\u47\u98\u62
$profix_unistr2 = unicode_decode($prefix_unistr, 'GBK', "\\u", '');
echo $profix_unistr2.'<br />'; //<b>哈哈</b>
php汉字转Unicode编码函数的更多相关文章
- 车牌、手机、身份证、等敏感信息 屏蔽 替换 、中文转unicode编码 函数
应工作要求,需要对展示的内容进行敏感信息替换.琢磨的一些时间,编写的函数匹配率还是比较高的. 顺便说下思路,使用的是正则匹配替换和字符串替换.函数可以再改进. 先把需要匹配的内容写好相应的正则,然后进 ...
- .Net(c#)汉字和Unicode编码互相转换
{"Tilte": "\u535a\u5ba2\u56ed", "Href": "http://www.cnblogs.com&q ...
- PHP中对汉字进行UNICODE编码和解码的实现
<?php /** PHP中对汉字进行UNICODE编码和解码的实现 **/ class Helper_Tool{ //php中的unicode编码转中文 static function uni ...
- C#怎么判断字符是不是汉字 汉字和Unicode编码互相转换
判断一个字符是不是汉字通常有三种方法,第1种用 ASCII 码判断(在 ASCII码表中,英文的范围是0-127,而汉字则是大于127,根据这个范围可以判断),第2种用汉字的 UNICODE 编码范围 ...
- .Net(c#)汉字和Unicode编码互相转换实例
{"name": "\u676d\u5dde", "href": "www.baidu.com"} 经常遇到这样内容的j ...
- c# 实现获取汉字十六进制Unicode编码字符串
1. 汉字转十六进制UNICODE编码字符串 /// <summary> /// //// /// </summary> /// & ...
- 简体和繁体加起来有六七万个汉字,所以Unicode只能排除一些几乎不用的汉字,Unicode编码的熟悉与研究过程(内附全部汉字编码列表)
我有一个问题是:是不是会有个别汉字无法在Unicode下表示,这种情况下就不能完全显示了? 各种编码查询表:http://bm.kdd.cc/ ---------------------------- ...
- 将汉字转化为拼音,正则表达式和得到汉字的Unicode编码
一:上图,不清楚的看代码注解,很详细了 二:具体代码 窗体代码 using System; using System.Collections.Generic; using System.Compone ...
- C#汉字转为Unicode编码
主要用于生成json格式时,将汉字转成Unicoude编码,防止页面乱码. protected string GetUnicode(string text) { string result = &qu ...
随机推荐
- Hadoop: HDFS 格式化时,出现 “ERROR namenode.NameNode: java.io.IOException: Cannot create directory /usr/hadoop/tmp/dfs/name/current”
原因是 没有设置 /usr/hadoop/tmp 的权限没有设置, 将之改为: chown –R hadoop:hadoop /usr/hadoop/tmp 查看:
- 链接<a href="javascript:void(0)" />
1.<a href="#"></a>——点击链接后,页面会向上滚到页首,# 默认锚点为 #TOP 2.<a href="javascript ...
- 基本的 html 代码
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- NOIP2012模拟试题【奶牛晒衣服】
1.奶牛晒衣服(dry) [问题描述] 在熊大妈英明的带领下,时针和它的同伴生下了许多牛宝宝.熊大妈决定给每个宝宝都穿上可爱的婴儿装.于是,为牛宝宝洗晒衣服就成了很不爽的事情. 圣人王担负起了这个重任 ...
- VSFTP服务
互联网最开始的三大服务:HTTP.mail.FTP 一.文件服务器简介 FTP:在内网和公网使用.服务器:windows,Linux 客户端:windows,Linux samb ...
- SSO单点登录PHP简单版
前面做了一个新项目,需要用户资源可以需要共享.由于之前没有做过这样的东西,回家之后,立马网站百度"单点登录".帖子很多,甄别之后,这里列几篇认为比较有营养. http://blog ...
- Android Studio .grade文件知识
1.位置 2.问题:当AndroidStudio版本不同的时候,导致.gradle文件版本不同(当前为2.10),因为AndroidStudio升级的时候会自动升级.gradle.这样通过svn加载到 ...
- AlertDialog与DialogFragment
1.AlertDialog 作用:简单的弹出框实现 创建方法: AlertDialog alert = new AlertDialog.Builder(); 使用: new AlertDialog.B ...
- C语言基础08
1.指针和指针变量 指针变量:是保存变量地址的变量,存放只有地址; 指针:是变量的地址,存放的可以是3,4.5,YES; 普通变量与指针变量什么不同呢? 普通变量只能存取我们常常看到的类型数据,指针变 ...
- js的体会
关于观察者模式的核心是: 回调函数, 传递函数名作为参数,或者是传递变量,然后调用其函数名. 关于闭包的核心是 闭包的函数是全局变量之下的函数, 而非闭包的函数是局部变量. <script> ...