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 相关文章推荐
PHP5/ZendEngine2的改进
Oct 09 PHP
用PHP和ACCESS写聊天室(七)
Oct 09 PHP
php的字符串用法小结
Jun 08 PHP
PHP 代码规范小结
Mar 08 PHP
比较简单的百度网盘文件直链PHP代码
Mar 24 PHP
php遍历目录与文件夹的多种方法详解
Nov 14 PHP
基于JQuery+PHP编写砸金蛋中奖程序
Sep 08 PHP
php编程中echo用逗号和用点号连接的区别
Mar 26 PHP
Yii2中使用join、joinwith多表关联查询
Jun 30 PHP
php中遍历二维数组并以表格的形式输出的方法
Jan 03 PHP
Laravel5.5 手动分页和自定义分页样式的简单实现
Oct 15 PHP
Laravel Eloquent ORM 实现查询表中指定的字段
Oct 17 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 采用ajax技术的 省 市 地 3级联动无刷新菜单 源码
2006/12/16 PHP
PHP中浮点数计算比较及取整不准确的解决方法
2015/01/09 PHP
PHP生成唯一订单号
2015/07/05 PHP
Yii2 中实现单点登录的方法
2018/03/09 PHP
thinkPHP+LayUI 流加载实现功能
2019/09/27 PHP
TP5框架实现的数据库备份功能示例
2020/04/05 PHP
JavaScript高级程序设计(第3版)学习笔记9 js函数(下)
2012/10/11 Javascript
jQuery操作Select的Option上下移动及移除添加等等
2013/11/18 Javascript
jQuery点击自身以外地方关闭弹出层的简单实例
2013/12/24 Javascript
jquery 自定义容器下雨效果可将下雨图标改为其他
2014/04/23 Javascript
javascript中AJAX用法实例分析
2015/01/30 Javascript
jquery插件corner实现圆角边框的方法
2015/03/09 Javascript
jQuery通过扩展实现抖动效果的方法
2015/03/11 Javascript
Javascript技术栈中的四种依赖注入详解
2016/02/23 Javascript
vue,angular,avalon这三种MVVM框架优缺点
2016/04/27 Javascript
输入框点击时边框变色效果的实现方法
2016/12/26 Javascript
AngularJS入门示例之Hello World详解
2017/01/04 Javascript
详解nodejs中的process进程
2017/03/19 NodeJs
基于ajax和jsonp的原生封装(实例)
2017/10/16 Javascript
浅谈在vue项目中如何定义全局变量和全局函数
2017/10/24 Javascript
Vue.js 动态为img的src赋值方法
2018/03/14 Javascript
Layui事件监听的实现(表单和数据表格)
2019/10/17 Javascript
vue 返回上一页,页面样式错乱的解决
2019/11/14 Javascript
JS实现简易贪吃蛇游戏
2020/08/24 Javascript
vue + el-form 实现的多层循环表单验证
2020/11/25 Vue.js
[51:00]Secret vs VGJ.S 2018国际邀请赛淘汰赛BO3 第一场 8.24
2018/08/25 DOTA
python实现人脸签到系统
2020/04/13 Python
如何开发一款堪比APP的微信小程序(腾讯内部团队分享)
2016/12/22 HTML / CSS
HTML5 Canvas锯齿图代码实例
2014/04/10 HTML / CSS
Sport-Thieme荷兰:购买体育用品
2019/08/25 全球购物
全球最大化妆品零售网站:SkinStore
2020/10/24 全球购物
如何实现一个自定义类的序列化
2012/05/22 面试题
运动员口号
2014/06/09 职场文书
纪念九一八事变演讲稿:勿忘国耻
2014/09/14 职场文书
2014村书记党建工作汇报材料
2014/11/02 职场文书
SQL Server2019安装的详细步骤实战记录(亲测可用)
2022/06/10 SQL Server