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与XML联手进行网站编程代码实例
Jul 10 PHP
PHP容易忘记的知识点分享
Apr 30 PHP
php中的路径问题与set_include_path使用介绍
Feb 11 PHP
PHP中使用smarty生成静态文件的例子
Apr 24 PHP
PHP日期函数date格式化UNIX时间的方法
Mar 19 PHP
微信自定义菜单的处理开发示例
Apr 16 PHP
解决yii2左侧菜单子级无法高亮问题的方法
May 08 PHP
php二维码生成以及下载实现
Sep 28 PHP
利用PHP判断是手机移动端还是PC端访问的函数示例
Dec 14 PHP
浅析PHP7 的垃圾回收机制
Sep 06 PHP
php实现对文件压缩简单的方法
Sep 29 PHP
laravel 解决paginate查询多个字段报错的问题
Oct 22 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
解密ThinkPHP3.1.2版本之独立分组功能应用
2014/06/19 PHP
jQuery向下滚动即时加载内容实现的瀑布流效果
2016/01/07 PHP
Yii2 rbac权限控制操作步骤实例教程
2016/04/29 PHP
JS 遮照层实现代码
2010/03/31 Javascript
浅析Cookie中的Path与domain
2013/12/18 Javascript
基于NodeJS的前后端分离的思考与实践(六)Nginx + Node.js + Java 的软件栈部署实践
2014/09/26 NodeJs
jQuery实现点击该行即可删除HTML表格行
2014/10/17 Javascript
jquery实现点击变换导航样式的方法
2015/08/31 Javascript
深入分析node.js的异步API和其局限性
2016/09/05 Javascript
JS实现登录页密码的显示和隐藏功能
2017/12/06 Javascript
vue移动端实现红包雨效果
2020/06/23 Javascript
vue 2.8.2版本配置刚进入时候的默认页面方法
2018/09/21 Javascript
微信小程序实现手势滑动卡片效果
2019/08/26 Javascript
微信小程序实现pdf、word等格式文件上传的方法
2019/09/10 Javascript
layui 关闭open弹出框 刷新table表格页面的方法
2019/09/16 Javascript
微信小程序动态设置图片大小的方法
2019/11/21 Javascript
JS常用正则表达式超全集(密码强度校验,金额校验,IE版本,IPv4,IPv6校验)
2020/02/03 Javascript
toString.call()通用的判断数据类型方法示例
2020/08/28 Javascript
[08:08]2014DOTA2国际邀请赛中国区预选赛精彩TOPPLAY
2014/06/25 DOTA
[01:16]2014DOTA2 TI专访C9战队EE:中国五强中会占三席
2014/07/10 DOTA
[02:49]2014DOTA2电竞也是体育项目! 势要把荣誉带回中国!
2014/07/20 DOTA
[02:19]DOTA2上海特级锦标赛 观赛指南 Spectator Guide
2016/02/04 DOTA
Python装饰器使用实例:验证参数合法性
2015/06/24 Python
Python3 chardet模块查看编码格式的例子
2019/08/14 Python
Python3使用PySynth制作音乐的方法
2019/09/09 Python
python用opencv 图像傅里叶变换
2021/01/04 Python
戴森比利时官方网站:Dyson BE
2020/10/03 全球购物
FirstCry阿联酋儿童和婴儿产品网上购物:FirstCry.ae
2021/02/22 全球购物
高校辅导员推荐信范文
2013/12/25 职场文书
招聘单位介绍信
2014/01/14 职场文书
幼儿教师培训感言
2014/03/08 职场文书
小学亲子活动总结
2014/07/01 职场文书
房地产公司工程部经理岗位职责
2015/04/09 职场文书
让世界充满爱观后感
2015/06/10 职场文书
Js类的构建与继承案例详解
2021/09/15 Javascript
Go gorilla securecookie库的安装使用详解
2022/08/14 Golang