PHP 中文处理技巧
折腾了一天的时间,才弄出点眉目来。
做AJAX应用或Flash应用,提交中文内容到后台,涉及到编码解码(encode、decode)及编码格式的转换。
网上的PHP端escape unescape函数建议不要用,它把中英文混合时的英文过滤掉了,我是莫名其妙了N久啊,建议用unicode_urldecode这个。
再就是编码格式的转换,这主要涉及数据的存储和客户端返回,用iconv就搞定,这个函数似乎是从C++中借鉴来的。
代码如下:
function unicode_urldecode($url)
{
preg_match_all('/%u([[:alnum:]]{4})/', $url, $a);
foreach ($a[1] as $uniord)
{
$dec = hexdec($uniord);
$utf = '';
if ($dec < 128)
{
$utf = chr($dec);
}
else if ($dec < 2048)
{
$utf = chr(192 + (($dec - ($dec % 64)) / 64));
$utf .= chr(128 + ($dec % 64));
}
else
{
$utf = chr(224 + (($dec - ($dec % 4096)) / 4096));
$utf .= chr(128 + ((($dec % 4096) - ($dec % 64)) / 64));
$utf .= chr(128 + ($dec % 64));
}
$url = str_replace('%u'.$uniord, $utf, $url);
}
return urldecode($url);
}
相关推荐
-
perl 中文处理技巧
Perl从5.6开始已经开始在内部使用utf8编码来表示字符,也就是说对中文以及其他语言字符的处理应该是完全没有问题的.我们只需要利用好Encode这个模块便能充分发挥Perl的utf8字符的优势了. 下面就以中文文本的处理为例进行说明,比如有一个字符串"测试文本",我们想要把这个中文字符串拆成单个字符,可以这样写: use Encode; $dat="测试文本"; $str=decode("gb2312",$dat); @chars=split
-
PHP 中文处理技巧
折腾了一天的时间,才弄出点眉目来. 做AJAX应用或Flash应用,提交中文内容到后台,涉及到编码解码(encode.decode)及编码格式的转换. 网上的PHP端escape unescape函数建议不要用,它把中英文混合时的英文过滤掉了,我是莫名其妙了N久啊,建议用unicode_urldecode这个. 再就是编码格式的转换,这主要涉及数据的存储和客户端返回,用iconv就搞定,这个函数似乎是从C++中借鉴来的. 复制代码 代码如下: function unicode_urldecode
-
django模型中的字段和model名显示为中文小技巧分享
简单方法: models.py 复制代码 代码如下: class IceCreamBar(models.Model): title = models.CharField(max_length=200,db_index=True,verbose_name="名称") shell = models.CharField(max_length=100,verbose_name='外皮') filling = models.CharField(max_le
-
winVista系列技巧之各种中文输入法的使用
输入法是我们工作必不可少的工具,和Windows XP一样,Vista中有些时候输入法也不能很好用,的些时候我们会发现Windows Vista下无法正常使用五笔输入,紫光拼音,拼音加加等.尤其是在IE浏览器里运行的时候.<--NEWSZW_HZH_BEGIN--> <--NEWSZW_HZH_END--> 这时候一般是由于IE保护模式的作用,由于IE保护模式依赖于UAC.UIPI和MIC的作用,所以大概可以认为是UAC.UIPI或者MIC的安全功能导致这些输入法出现问题.
-
Angular.js回顾ng-app和ng-model使用技巧
Angular.js中index.html简单结构: <!doctype html> <html ng-app> <head> <script src="http://code.angularjs.org/angular-1.0.1.min.js"></script> </head> <body> Your name: <input type="text" ng-model=&
-
Python使用中文正则表达式匹配指定中文字符串的方法示例
本文实例讲述了Python使用中文正则表达式匹配指定中文字符串的方法.分享给大家供大家参考,具体如下: 业务场景: 从中文字句中匹配出指定的中文子字符串 .这样的情况我在工作中遇到非常多, 特梳理总结如下. 难点: 处理GBK和utf8之类的字符编码, 同时正则匹配Pattern中包含汉字,要汉字正常发挥作用,必须非常谨慎.推荐最好统一为utf8编码,如果不是这种最优情况,也有酌情处理. 往往一个具有普适性的正则表达式会简化程序和代码的处理,使过程简洁和事半功倍,这往往是高手和菜鸟最显著的差别.
-
编程人员阅读代码的一些小技巧分享
代码阅读的必要性 阅读别人的代码作为研发人员是一件经常要做的事情.一个是学习新的编程语言的时候通过阅读别人的代码是个最佳的学习方法,另外是积累编程经验.如果你有机 会阅读一些操作系统的代码会帮助你理解一些基本的原理.更有就是在你作为一个质量确保人员或一个小领导的时候如果你要做白盒测试的时候没有阅读代码的能力 是不能完成相应的任务.最后一个就是如果你中途接手一个项目的时候或给一个项目做售后服务的时候是要有阅读代码的能力的. 收集所有可能收集的材料 阅读代码要做的第一件事情是收集所有和项目相关的资料
-
PHP实现json_decode不转义中文的方法
本文实例讲述了PHP实现json_decode不转义中文的方法.分享给大家供大家参考,具体如下: 默认情况下PHP的 json_decode 方法会把特殊字符进行转义,还会把中文转为Unicode编码形式. 这使得数据库查看文本变得很麻烦.所以我们需要限制对于中文的转义. 对于PHP5.4+版本,json_decode函数第二个参数,可以用来限制转义范围. 要限制中文,使用JSON_UNESCAPED_UNICODE参数. json_encode($a, JSON_UNESCAPED_UNICO
-
收集的48个Shell脚本小技巧
本文收集了一堆的shell脚本技巧,我说过,我写博客主要是作一些学习笔记,方便自己查阅,所以,我会搞出这么一篇文章,也没有什么不可理解的.关于这些技巧的出处,诶,我也忘了,可能来自theunixschool. commandlinefu.酷勤网和igigo.net,当然了,也有部分是我自己的经验心得,管他呢,进了我的脑子就是我的了. 0. shell 调试 复制代码 代码如下: sh -x somefile.sh 在somefile.sh 文件里加上set+x set-x 1. 用 &&
-
DB2编程序技巧 (八)
正在看的db2教程是:DB2编程序技巧 (八).4.2 创建Database create database head using codeset IBM-eucCN territory CN; 这样可以支持中文. 4.3 手工做数据库远程(别名)配置 db2 catalog tcpip node node1 remote 172.28.200.200 server 50000 db2 catalog db head as test1 at node n
随机推荐
- Prototype Object对象 学习
- 千万不要被阶乘吓倒
- java 同步器SynchronousQueue详解及实例
- Objective-C中使用NSString类操作字符串的方法小结
- MVC分页之MvcPager使用详解
- .net重启iis线程池和iis站点程序代码分享
- BootStrap表单宽度设置方法
- 使用javascript实现有效时间的控制,并显示将要过期的时间
- Apache启动报错No space left on device: AH00023该怎么解决
- Android适配安卓6.0蓝牙通讯实现过程
- JavaScript表单即时验证 验证不成功不能提交
- Lua实现类继承
- 用批处理列出所有开机启动项的命令
- 基于JavaScript实现的顺序查找算法示例
- java不可逆加密算法之md5加密算法使用示例
- WinForm调用百度地图接口用法示例
- android 使用虚拟机安装apk(图文教程)
- java 8如何自定义收集器(collector)详解
- 将DataRow转成指定类型的类,并返回这个类的对象(带值)
- php中cookie的作用域