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实现ODBC数据分页显示一例
Oct 09 PHP
snoopy PHP版的网络客户端提供本地下载
Apr 15 PHP
PHP中改变图片的尺寸大小的代码
Jul 17 PHP
让Json更懂中文(JSON_UNESCAPED_UNICODE)
Oct 27 PHP
php采用ajax数据提交post与post常见方法总结
Nov 10 PHP
php 批量查询搜狗sogou代码分享
May 17 PHP
Yii+upload实现AJAX上传图片的方法
Jul 13 PHP
基于php实现的验证码小程序
Dec 13 PHP
php实现查询功能(数据访问)
May 23 PHP
Thinkphp3.2简单解决多文件上传只上传一张的问题
Sep 26 PHP
Laravel学习教程之model validation的使用示例
Oct 23 PHP
PHP生成随机数的方法总结
Mar 01 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获取文件绝对路径的代码(上一级目录)
2011/05/29 PHP
php打造属于自己的MVC框架
2012/03/07 PHP
php汉字转拼音的示例
2014/02/27 PHP
php生成图片验证码的实例讲解
2015/08/03 PHP
java解析json方法总结
2019/05/16 PHP
javascript知识点收藏
2007/02/22 Javascript
JavaScript QueryString解析类代码
2010/01/17 Javascript
JQuery之拖拽插件实现代码
2011/04/14 Javascript
JavaScript 基础篇之运算符、语句(二)
2012/04/07 Javascript
Js与下拉列表处理问题解决
2014/02/13 Javascript
jquery复选框checkbox实现删除前判断
2014/04/20 Javascript
iScroll中事件点击触发两次解决方案
2015/03/11 Javascript
JavaScript基于setTimeout实现计数的方法
2015/05/08 Javascript
Javascript实现快速排序(Quicksort)的算法详解
2015/09/06 Javascript
仅9张思维导图帮你轻松学习Javascript 就这么简单
2016/06/01 Javascript
使用ReactJS实现tab页切换、菜单栏切换、手风琴切换和进度条效果
2016/10/17 Javascript
Vue.js 点击按钮显示/隐藏内容的实例代码
2018/02/08 Javascript
jQuery实现使用sort方法对json数据排序的方法
2018/04/17 jQuery
vue中的router-view组件的使用教程
2018/10/23 Javascript
详解使用element-ui table组件的筛选功能的一个小坑
2018/11/02 Javascript
微信小程序实现滑动切换自定义页码的方法分析
2018/12/29 Javascript
jQuery位置选择器用法实例分析
2019/06/28 jQuery
python每隔N秒运行指定函数的方法
2015/03/16 Python
python爬虫 Pyppeteer使用方法解析
2019/09/28 Python
Django 再谈一谈json序列化
2020/03/16 Python
浅谈Python程序的错误:变量未定义
2020/06/02 Python
办公室人员先进事迹
2014/01/27 职场文书
学生党支部先进事迹
2014/02/04 职场文书
商务经理岗位职责
2014/08/03 职场文书
派出所正风肃纪剖析材料
2014/10/10 职场文书
维稳工作情况汇报
2014/10/27 职场文书
2014年体育教师工作总结
2014/12/03 职场文书
承诺书范本
2015/01/21 职场文书
客服专员岗位职责
2015/02/10 职场文书
计划生育责任书
2015/05/09 职场文书
Python Matplotlib绘制两个Y轴图像
2022/04/13 Python