PHP与MYSQL中UTF8 中文排序示例代码


Posted in PHP onOctober 23, 2014

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的(3water.com)很多版本中都存在。
如果这个问题不解决,那么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 相关文章推荐
用PHP连接Oracle数据库
Oct 09 PHP
PHP新手上路(十四)
Oct 09 PHP
PHP实现单例模式最安全的做法
Jun 13 PHP
10款PHP开源商城系统汇总介绍
Jul 23 PHP
php使用Header函数,PHP_AUTH_PW和PHP_AUTH_USER做用户验证
May 04 PHP
PHP树-不需要递归的实现方法
Jun 21 PHP
PHP魔术方法之__call与__callStatic使用方法
Jul 23 PHP
PHP调用API接口实现天气查询功能的示例
Sep 21 PHP
PHP开发中解决并发问题的几种实现方法分析
Nov 13 PHP
PHP实现Redis单据锁以及防止并发重复写入
Apr 10 PHP
php对象工厂类完整示例
Aug 09 PHP
关于Anemometer图形化显示MySQL慢日志的工具搭建及使用的详细介绍
Jul 13 PHP
php cookie名使用点号(句号)会被转换
Oct 23 #PHP
php格式化时间戳显示友好的时间实现思路及代码
Oct 23 #PHP
PHP正则表达式 /i, /is, /s, /isU等介绍
Oct 23 #PHP
PHP函数实现分页含文本分页和数字分页
Oct 23 #PHP
10个实用的PHP正则表达式汇总
Oct 23 #PHP
PHP中怎样防止SQL注入分析
Oct 23 #PHP
PDO防注入原理分析以及使用PDO的注意事项总结
Oct 23 #PHP
You might like
php实现mysql数据库操作类分享
2014/02/14 PHP
从零开始学YII2框架(五)快速生成代码工具 Gii 的使用
2014/08/20 PHP
初识通用数据库操作类――前端easyui-datagrid,form(php)
2015/07/31 PHP
Yii2框架操作数据库的方法分析【以mysql为例】
2019/05/27 PHP
php实现微信和支付宝支付的示例代码
2020/08/11 PHP
JavaScript.The.Good.Parts阅读笔记(一)假值与===运算符
2010/11/16 Javascript
javascript实现阻止iOS APP中的链接打开Safari浏览器
2014/06/12 Javascript
C++中的string类的用法小结
2015/08/07 Javascript
js获取及判断键盘按键的方法
2015/12/01 Javascript
jQuery position() 函数详解以及jQuery中position函数的应用
2015/12/14 Javascript
HTML5+Canvas调用手机拍照功能实现图片上传(上)
2017/04/21 Javascript
Angular4学习笔记之实现绑定和分包
2017/08/01 Javascript
Koa项目搭建过程详细记录
2018/04/12 Javascript
微信小程序生成分享海报方法(附带二维码生成)
2019/03/29 Javascript
微信小程序wx.navigateTo中events属性实现页面间通信传值,数据同步
2019/07/13 Javascript
[03:55]显微镜下的DOTA2特别篇——430灰烬之灵神级操作
2014/06/24 DOTA
Python与Redis的连接教程
2015/04/22 Python
Python实现代码统计工具(终极篇)
2016/07/04 Python
python3+PyQt5重新实现QT事件处理程序
2018/04/19 Python
对命令行模式与python交互模式介绍
2018/05/12 Python
Python+selenium实现自动循环扔QQ邮箱漂流瓶
2018/05/29 Python
python中单下划线_的常见用法总结
2018/07/10 Python
TensorBoard 计算图的查看方式
2020/02/15 Python
python数据预处理 :数据抽样解析
2020/02/24 Python
Python3.7安装pyaudio教程解析
2020/07/24 Python
python中用ctypes模拟点击的实例讲解
2020/11/26 Python
SQL Server数据库笔试题和答案
2016/02/04 面试题
大学军训自我鉴定
2013/12/15 职场文书
和解协议书
2014/04/16 职场文书
超市客服工作职责
2014/06/11 职场文书
学校教师安全责任书
2014/07/23 职场文书
民主评议党员工作总结
2014/10/20 职场文书
小学生通知书评语
2014/12/31 职场文书
小学数学教师研修感悟
2015/11/18 职场文书
python 如何在list中找Topk的数值和索引
2021/05/20 Python
浅析Redis Sentinel 与 Redis Cluster
2021/06/24 Redis