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 相关文章推荐
桌面中心(三)修改数据库
Oct 09 PHP
一个简单的PHP&MYSQL留言板源码
Jul 19 PHP
实现dedecms全站URL静态化改造的代码
Mar 29 PHP
PHP判断图片格式的七种方法小结
Jun 03 PHP
php数组声明、遍历、数组全局变量使用小结
Jun 05 PHP
php定时计划任务与fsockopen持续进程实例
May 23 PHP
CodeIgniter针对lighttpd服务器URL重写的方法
Jun 10 PHP
优化WordPress的Google字体以加速国内服务器上的运行
Nov 24 PHP
php版微信公众平台实现预约提交后发送email的方法
Sep 26 PHP
通过chrome浏览器控制台(Console)进行PHP Debug的方法
Oct 19 PHP
PHP与SQL语句常用大全
Dec 10 PHP
PHP实现git部署的方法教程
Dec 19 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
PHP编译安装中遇到的两个错误和解决方法
2014/08/20 PHP
Zend Framework常用校验器详解
2016/12/09 PHP
记Laravel调用Gin接口调用formData上传文件的实现方法
2019/12/12 PHP
php设计模式之策略模式实例分析【星际争霸游戏案例】
2020/03/26 PHP
Jquery 基础学习笔记
2009/05/29 Javascript
javaScript parseInt字符转化为数字函数使用小结
2009/11/05 Javascript
基于JQuery的访问WebService的代码(可访问Java[Xfire])
2010/11/19 Javascript
深入剖析JavaScript中的枚举功能
2014/03/06 Javascript
jquery鼠标放上去显示悬浮层即弹出定位的div层
2014/04/25 Javascript
iOS和Android用同一个二维码实现跳转下载链接的方法
2016/09/28 Javascript
使用jquery.qrcode.js生成二维码插件
2016/10/17 Javascript
ES6中Math对象新增的方法实例详解
2017/04/25 Javascript
js es6系列教程 - 基于new.target属性与es5改造es6的类语法
2017/09/02 Javascript
在vue中获取token,并将token写进header的方法
2018/09/26 Javascript
layui实现数据表格自定义数据项
2019/10/26 Javascript
解决vue刷新页面以后丢失store的数据问题
2020/08/11 Javascript
javascript实现随机抽奖功能
2020/12/30 Javascript
Python实现好友全头像的拼接实例(推荐)
2017/06/24 Python
python dataframe常见操作方法:实现取行、列、切片、统计特征值
2018/06/09 Python
详解Django-restframework 之频率源码分析
2019/02/27 Python
django foreignkey外键使用的例子 相当于left join
2019/08/06 Python
tensorflow实现二维平面模拟三维数据教程
2020/02/11 Python
Python实现井字棋小游戏
2020/03/09 Python
把Anaconda中的环境导入到Pycharm里面的方法步骤
2020/10/30 Python
CSS3——齿轮转动关键代码
2013/05/02 HTML / CSS
html5跨域通讯之postMessage的用法总结
2013/11/07 HTML / CSS
日本航空官方网站:JAL
2019/06/19 全球购物
Fenty Beauty官网:蕾哈娜创立的美妆品牌
2021/01/07 全球购物
军训学生自我鉴定
2014/02/12 职场文书
2014年五一活动策划方案
2014/03/15 职场文书
2015元旦晚会主持词(开场白+结束语)
2014/12/14 职场文书
故宫导游词
2015/01/31 职场文书
总经理助理岗位职责
2015/01/31 职场文书
2015年监理工作总结范文
2015/04/07 职场文书
2015年人力资源工作总结
2015/04/08 职场文书
Mysql 文件配置解析介绍
2022/05/06 MySQL