PHP与MYSQL中UTF8编码的中文排序实例


Posted in PHP onOctober 21, 2014

本文实例讲述了PHP与MYSQL中UTF8编码的中文排序方法,分享给大家供大家参考。具体实现方法如下:

一般来说,中文共有三种排序方式:

1.根据拼音排序;
2.根据笔画排序;
3.根据偏旁排序。

系统的默认排序方式为拼音排序了,这个也是我们常用的,下面介绍的就是按拼音排序了

1. 需要在php数组中用中文排序,但是一般使用utf8格式的文件,直接用asort排序不行。用gbk和gb2312可以。这跟几种格式的编码有关系。gbk和gb2312本身的编码就是用拼音排序的。

function utf8_array_asort(&$array)

{

if(!isset($array) || !is_array($array))

{

return false;

}

foreach($array as $k=>$v)

{

$array[$k] = iconv('UTF-8', 'GBK//IGNORE',$v);

}

asort($array);

foreach($array as $k=>$v)

{

$array[$k] = iconv('GBK', 'UTF-8//IGNORE', $v);

}

return true;

}

2. 在MySQL中,我们经常会对一个字段进行排序查询,但进行中文排序和查找的时候,对汉字的排序和查找结果往往都是错误的。 这种情况在MySQL的很多版本中都存在。

如果这个问题不解决,那么MySQL将无法实际处理中文。 出现这个问题的原因是因为MySQL在查询字符串时是大小写不敏感的,在编绎MySQL时一般以ISO-8859字符集作为默认的字符集,因此在比较过程中中文编码字符大小写转换造成了这种现象。

解决方法:

对于包含中文的字段加上"binary"属性,使之作为二进制比较,例如将"name char(10)"改成"name char(10)binary"。

如果你使用源码编译MySQL,可以编译MySQL时使用 --with--charset=gbk 参数,这样MySQL就会直接支持中文查找和排序了(默认的是latin1)。也可以用 extra-charsets=gb2312,gbk 来加入多个字符集。

如果不想对表结构进行修改或者重新编译MySQL,也可以在查询语句的 order by 部分使用 CONVERT 函数。比如

select * from mytable order by CONVERT(chineseColumnName USING gbk);

希望本文所述对大家的PHP+MySQL程序设计有所帮助。

PHP 相关文章推荐
PHP+DBM的同学录程序(1)
Oct 09 PHP
php下使用SMTP发邮件的代码
Jan 10 PHP
PHP文件读写操作之文件写入代码
Jan 13 PHP
smarty基础之拼接字符串的详解
Jun 18 PHP
PHP人民币金额转大写实例代码
Oct 02 PHP
php版微信公众平台之微信网页登陆授权示例
Sep 23 PHP
PHP利用Socket获取网站的SSL证书与公钥
Jun 18 PHP
php微信开发之音乐回复功能
Jun 14 PHP
详解json在php中的应用
Sep 30 PHP
JS操作XML中DTD介绍及使用方法分析
Jul 04 PHP
解决laravel 出现ajax请求419(unknown status)的问题
Sep 03 PHP
yii 框架实现按天,月,年,自定义时间段统计数据的方法分析
Apr 04 PHP
php cookie中点号(句号)自动转为下划线问题
Oct 21 #PHP
微信公众平台网页授权获取用户基本信息中授权回调域名设置的变动
Oct 21 #PHP
php时间戳格式化显示友好的时间函数分享
Oct 21 #PHP
ThinkPHP整合百度Ueditor图文教程
Oct 21 #PHP
浅谈PHP正则表达式中修饰符/i, /is, /s, /isU
Oct 21 #PHP
php读取目录及子目录下所有文件名的方法
Oct 20 #PHP
php中的字符编码转换函数用法示例
Oct 20 #PHP
You might like
sqlyog 中文乱码问题的设置方法
2008/10/19 PHP
基于php权限分配的实现代码
2013/04/28 PHP
php解析mht文件转换成html的实例
2017/03/13 PHP
jQuery 的全选(全非选)即取得被选中的值使用介绍
2013/11/12 Javascript
js获取UserControl内容为拼html时提供方便
2014/11/02 Javascript
JavaScript模板引擎用法实例
2015/07/10 Javascript
js友好的时间返回函数
2016/08/24 Javascript
BootStrap框架个人总结(bootstrap框架、导航条、下拉菜单、轮播广告carousel、栅格系统布局、标签页tabs、模态框、菜单定位)
2016/12/01 Javascript
vuejs开发组件分享之H5图片上传、压缩及拍照旋转的问题处理
2017/03/06 Javascript
vue2.0父子组件间通信的实现方法
2017/04/19 Javascript
layui分页效果实现代码
2017/05/19 Javascript
文本溢出插件jquery.dotdotdot.js使用方法详解
2017/06/22 jQuery
微信小程序城市选择及搜索功能的方法
2019/03/22 Javascript
node基于async/await对mysql进行封装
2019/06/20 Javascript
vue实现前端分页完整代码
2020/06/17 Javascript
jQuery实现简单全选框
2020/09/13 jQuery
Python操作mysql数据库实现增删查改功能的方法
2018/01/15 Python
Pytorch入门之mnist分类实例
2018/04/14 Python
Python使用win32com模块实现数据库表结构自动生成word表格的方法
2018/07/17 Python
Python正则表达式实现简易计算器功能示例
2019/05/07 Python
Python自定义sorted排序实现方法详解
2020/09/18 Python
CSS3实现多背景模拟动态边框的效果
2016/11/08 HTML / CSS
AmazeUI 评论列表的实现示例
2020/08/13 HTML / CSS
美国精品家居用品网站:US-Mattress
2016/08/24 全球购物
实习教师自我鉴定
2013/12/09 职场文书
实习生自我评价
2014/01/18 职场文书
大学生校园创业计划书
2014/02/08 职场文书
教师个人自我评价范文
2014/04/13 职场文书
学生会竞选演讲稿学习部
2014/08/25 职场文书
领导干部群众路线教育实践活动个人对照检查材料
2014/09/23 职场文书
2015年效能监察工作总结
2015/04/23 职场文书
宇宙与人观后感
2015/06/05 职场文书
致青春观后感
2015/06/09 职场文书
2015年教务处干事工作总结
2015/07/22 职场文书
超市员工管理制度
2015/08/06 职场文书
Python源码解析之List
2021/05/21 Python