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
随机推荐
- Python中3种内建数据结构:列表、元组和字典
- Jquery AutoComplete自动完成 的使用方法实例
- 详解vue2.0组件通信各种情况总结与实例分析
- 本地存储localStorage用法详解
- Flex3 界面布局教程 第二篇
- Js查找字符串中出现次数最多的字符及个数实例解析
- 使用 Node.js 做 Function Test实现方法
- php获取mysql数据库中的所有表名的代码
- Python中functools模块的常用函数解析
- android 进度条组件ProgressBar
- JS常见简单正则表达式验证功能小结【手机,地址,企业税号,金额,身份证等】
- css与javascript跨浏览器兼容性总结
- ajax中文乱码问题解决方案
- 基于java实现的ECC加密算法示例
- Asp.Net常用函数
- Android 对Map按key和value分别排序的实例
- Android实现个人资料页面头像背景模糊显示包(状态栏)
- C++简单输出钻石菱形图效果
- Ubuntu下Sublime Text无法输入中文最简单的解决方案
- 微信小程序实现bindtap等事件传参