PHP 中文处理技巧


Posted in PHP onApril 25, 2010

折腾了一天的时间,才弄出点眉目来。
做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); 
}
PHP 相关文章推荐
dedecms后台验证码总提示错误的解决方法
Mar 21 PHP
《PHP编程最快明白》第四讲:日期、表单接收、session、cookie
Nov 01 PHP
php数组函数序列之array_combine() - 数组合并函数使用说明
Oct 29 PHP
PDO版本问题 Invalid parameter number: no parameters were bound
Jan 06 PHP
PHP写的资源下载防盗链类分享
May 12 PHP
php解析url并得到url中的参数及获取url参数的四种方式
Oct 26 PHP
[原创]PHP实现字节数Byte转换为KB、MB、GB、TB的方法
Aug 31 PHP
PDO::beginTransaction讲解
Jan 27 PHP
vmware linux系统安装最新的php7图解
Apr 14 PHP
laravel框架添加数据,显示数据,返回成功值的方法
Oct 11 PHP
关于laravel框架中的常用目录路径函数
Oct 23 PHP
php操作redis数据库常见方法实例总结
Feb 20 PHP
PHP 网络开发详解之远程文件包含漏洞
Apr 25 #PHP
php快速url重写更新版[需php 5.30以上]
Apr 25 #PHP
PHP CURL模拟GET及POST函数代码
Apr 25 #PHP
php file_get_contents函数轻松采集html数据
Apr 22 #PHP
国外比较好的几个的Php开源建站平台小结
Apr 22 #PHP
PHP最常用的ini函数分析 针对PHP.ini配置文件
Apr 22 #PHP
php allow_url_include的应用和解释
Apr 22 #PHP
You might like
php mysql Errcode: 28 终极解决方法
2009/07/01 PHP
检测png图片是否完整的php代码
2010/09/06 PHP
PHP的范围解析操作符(::)的含义分析说明
2011/07/03 PHP
php第一次无法获取cookie问题处理
2014/12/15 PHP
PHP实现获取中英文首字母
2015/06/19 PHP
浅谈Laravel核心解读之Console内核
2018/12/02 PHP
JavaScript面向对象之体会[总结]
2008/11/13 Javascript
图片连续滚动代码[兼容IE/firefox]
2009/06/11 Javascript
文本框中,回车键触发事件的js代码[多浏览器兼容]
2010/06/07 Javascript
js showModalDialog 弹出对话框的简单实例(子窗体)
2014/01/07 Javascript
js浏览器本地存储store.js介绍及应用
2014/05/13 Javascript
jquery对象和javascript对象即DOM对象相互转换
2014/08/07 Javascript
jQuery插件实现控制网页元素动态居中显示
2015/03/24 Javascript
jQuery插件编写步骤详解
2016/06/03 Javascript
纯JS单页面赛车游戏制作代码分享
2017/03/03 Javascript
NodeJs模拟登陆正方教务
2017/04/28 NodeJs
最实用的JS数组函数整理
2017/12/05 Javascript
vue.js实现格式化时间并每秒更新显示功能示例
2018/07/07 Javascript
图片文字识别(OCR)插件Ocrad.js教程
2018/11/26 Javascript
Vue源码解析之Template转化为AST的实现方法
2018/12/14 Javascript
layui添加动态菜单与选项卡 AJAX请求的例子
2019/09/25 Javascript
基于JavaScript实现留言板功能
2020/03/16 Javascript
vue3自定义dialog、modal组件的方法
2021/01/04 Vue.js
Python基于分水岭算法解决走迷宫游戏示例
2017/09/26 Python
Python求出0~100以内的所有素数
2018/01/23 Python
Python(Django)项目与Apache的管理交互的方法
2018/05/16 Python
Django Aggregation聚合使用方法解析
2019/08/01 Python
python 列表推导式使用详解
2019/08/29 Python
Python try except异常捕获机制原理解析
2020/04/18 Python
Python如何使用正则表达式爬取京东商品信息
2020/06/01 Python
python3.6中anaconda安装sklearn踩坑实录
2020/07/28 Python
通信专业个人自我鉴定
2013/10/21 职场文书
人事专员职责
2014/02/22 职场文书
二审答辩状范文
2015/05/22 职场文书
pygame面向对象的飞行小鸟实现(Flappy bird)
2021/04/01 Python
Python如何识别银行卡卡号?
2021/06/10 Python