php输出字符unicode码,[PHP]单字符Unicode编码解码函数
PHP 自带函数里面似乎是没有能够对字符或字符串进行直接转换的函数,百度了一下,发现了一个封装函数能用。
精简过后的函数内部还是会经过几次编码转换,但是我发现编码之后对特殊字符的转换有问题,索性再精简直接去掉了编码。
所以函数现在只支持UTF-8且只能单字符(传入字符串返回错值)
function char_unicode($str, $DECODE = True) {
$result = '';
if ($DECODE === False) {
$unicodestr = intval(base_convert(bin2hex(iconv('utf-8', 'UCS-4', $str)), 16, 10));
$result = $unicodestr;
} else {
$temp = intval($str);
$result = iconv('UCS-2BE', 'utf-8', ($temp < 256) ? chr(0) . chr($temp) : chr($temp / 256) . chr($temp % 256));
}
return $result;
}
需要的是单字符编码,对此函数进行了一点精简和修改,精简后默认UTF-8是没有问题的,本人对编码的认知不深,所以对其他编码能否完美支持这里不做测试了。
测试效果:
函数内容:
/**
* $str 编码字符串
* $DECODE 是否解码
* $encoding 字符串的编码,默认utf-8
*/
function char_unicode($str, $DECODE = True, $encoding = 'utf-8') {
$result = '';
if ($DECODE !== True) {
$str = iconv($encoding, "gb2312", $str);
if (ord(substr($str, 0, 1)) < 0xA1) { //如果为英文则取1个字节
$row = iconv("gb2312", $encoding, substr($str, 0, 1));
} else {
$row = iconv("gb2312", $encoding, substr($str, 0, 2));
}
//转换Unicode码
$unicodestr = base_convert(bin2hex(iconv($encoding, 'UCS-4', $row)), 16, 10);
$result = $unicodestr;
} else {
$temp = intval($str);
$unistr = ($temp < 256) ? chr(0) . chr($temp) : chr($temp / 256) . chr($temp % 256);
$result = iconv('UCS-2', $encoding, $unistr);
}
return $result;
}
测试代码:
header('Content-type:application/json;;charset=UTF-8');
/**
* $str 编码字符串
* $DECODE 是否解码
* $encoding 字符串的编码,默认utf-8
*/
function char_unicode($str, $DECODE = True, $encoding = 'utf-8') {
$result = '';
if ($DECODE !== True) {
$str = iconv($encoding, "gb2312", $str);
if (ord(substr($str, 0, 1)) < 0xA1) { //如果为英文则取1个字节
$row = iconv("gb2312", $encoding, substr($str, 0, 1));
} else {
$row = iconv("gb2312", $encoding, substr($str, 0, 2));
}
//转换Unicode码
$unicodestr = base_convert(bin2hex(iconv($encoding, 'UCS-4', $row)), 16, 10);
$result = $unicodestr;
} else {
$temp = intval($str);
$unistr = ($temp < 256) ? chr(0) . chr($temp) : chr($temp / 256) . chr($temp % 256);
$result = iconv('UCS-2BE', $encoding, $unistr);
}
return $result;
}
$str = "爱";
$int = char_unicode($str,False);
$unstr = char_unicode($int);
$str2 = char_unicode($unstr,False);
echo 'unicode编码前:'.$str .PHP_EOL;
echo 'unicode编码后:'.$unstr.PHP_EOL;
echo 'unicode解码后:'.$str2.PHP_EOL;
您可以选择一种方式赞助本站支付宝赞助
微信赞助
分享到各大网站
分享到:更多
php输出字符unicode码,[PHP]单字符Unicode编码解码函数相关推荐
- python返回unicode_Python 中通过 unicode 码返回单字符的函数是 ,返回单字符 unicode 码的函数是 。_学小易找答案...
[单选题]哪一个命令能用来查找在文件TESTFILE中只包含四个字符的行?( ) [单选题]修改以太网卡mac地址的命令为( ). [单选题]Python 字符串支持切片操作,如有字符串 s &quo ...
- python unicode码转换_python实现unicode转中文及转换默认编码的方法
本文实例讲述了python实现unicode转中文及转换默认编码的方法.分享给大家供大家参考,具体如下: 一.在爬虫抓取网页信息时常需要将类似"\u4eba\u751f\u82e6\u77e ...
- [PHP] unicode码、UTF-8码、字符的相互转换
unicode与UTF-8 unicode是一个大型字符集,unicode字符集收录了世界上所有的字符,并且为每一个字符分配了一个唯一的数字类型的ID值,这个ID在英文中叫unicode code p ...
- python3 转码的函数_python基础3之文件操作、字符编码解码、函数介绍
内容概要: 一.文件操作 二.字符编码解码 三.函数介绍 一.文件操作 文件操作流程: 打开文件,得到文件句柄并赋值给一个变量 通过句柄对文件进行操作 关闭文件 基本操作: 1 #/usr/bin/e ...
- 汉字编码(【Unicode】 【UTF-8】 【Unicode与UTF-8之间的转换】 【汉字 Unicode 编码范围】【中文标点Unicode码】【GBK编码】【批量获取汉字UNICODE码】)
参考博客: Unicode与UTF-8互转(C语言实现):http://blog.csdn.net/tge7618291/article/details/7599902 汉字 Unicode 编码范围 ...
- 网络爬虫中的Unicode码解决[实例]
unicode码 爬虫中的Unicode转中文 输出结果 unicode码 在我写爬虫的过程中,经常遇到一些网站的中文是经过Unicode转码的.在对网页进行解析时,需要将其进行转码,转为中文字符. ...
- python基础3之文件操作、字符编码解码、函数介绍
内容概要: 一.文件操作 二.字符编码解码 三.函数介绍 一.文件操作 文件操作流程: 打开文件,得到文件句柄并赋值给一个变量 通过句柄对文件进行操作 关闭文件 基本操作: 1 #/usr/bin/e ...
- 中央情报局关键词提取——Unicode码
Dataset 本文的任务是学习计算机在内存中如何存储一个值.本文的数据集sentences_cia.csv是中央情报局备忘录的一个摘录,描述了酷刑和其他秘密活动的细节.数据格式如下: year,st ...
- java打印unicode_java程序实现Unicode码和中文互相转换
有了前一篇文章的了解,大概了解了unicode编码格式了 ANSI:汉字区的内码范围高字节从B0-F7,低字节从A1-FE Unicode:汉字的Unicode编码范围为\u4E00-\u9FA5 \ ...
最新文章
- 十天学会php之第五天
- 新书《活用UML-需求分析高手》详细大纲(持续更新中)
- cat3 utp是不是网线_UTPCAT3网络双绞线规格型号
- 牛客题霸 最少素数拆分 C++题解/答案
- python为什么需要编辑器_Python是个什么鬼?为什么设计大牛都在学它?!
- VMware 多款产品中存在严重漏洞
- leetcode—24.堆题目leetcode总结
- LinkedList 真的是查找慢增删快?刷新你的认知!
- 数据分页模块系列 (二) 完美封装PageModel实现分页模块
- BAT及各大互联网公司2014前端笔试面试题:JavaScript篇
- vb难还是c语言难java_c语言难还是vb难?
- Pr视频、图片局部放大画面或画面移动
- 你要看透的56条人生哲理
- v4l2loopback 简介
- ps2改usb接口_如何将PS2接口键盘、鼠标改成USB接口
- ValueError: tile cannot extend outside image
- 2022-2028全球与中国期权及期货交易平台市场现状及未来发展趋势
- vue中使用 minix 混入
- 4.1 图像的几种色彩模式 [原创Ps教程]
- SEE MIPS RUN 第六章 内存管理与TLB
热门文章
- Linux零基础初级教程
- cac会议投稿难度大吗_发表 SCI 论文有多难?
- 【PP】重复生产参数文件说明
- 【ABAP】SAP判断单据是否被锁定
- 物料创建更新相关Table
- bat php 监控网站,HTML_进程监控实现代码[vbs+bat],运行后会在%windir%\system32\目录 - phpStudy...
- mysql连接串指定编码_MYSQL创建数据库时候直接指定编码和排序规则
- android 服务器201,Android端i-jetty服务器开发(八)
- C语言加取址符的作用,C语言中指针和取地址符的关系
- linux apt qt下载,Linux如何安装 apt-get 软件管理工具