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 相关文章推荐
ajax缓存问题解决途径
Dec 06 PHP
超强分页类2.0发布,支持自定义风格,默认4种显示模式
Jan 02 PHP
PHP strtr() 函数使用说明
Nov 21 PHP
简单的php 验证图片生成函数
May 21 PHP
PhpMyAdmin中无法导入sql文件的解决办法
Jan 08 PHP
Win下如何安装PHP的APC拓展
Aug 07 PHP
PHP实现绘制3D扇形统计图及图片缩放实例
Oct 01 PHP
详解WordPress中添加和执行动作的函数使用方法
Dec 29 PHP
php使用SAE原生Mail类实现各种类型邮件发送的方法
Oct 10 PHP
PHP调用Mailgun发送邮件的方法
May 04 PHP
ThinkPHP框架获取最后一次执行SQL语句及变量调试简单操作示例
Jun 13 PHP
Laravel重定向,a链接跳转,控制器跳转示例
Oct 22 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
漫威DC御用漫画家去世 他的表情包曾走红网络
2020/04/09 欧美动漫
php chr() ord()中文截取乱码问题解决方法
2008/09/08 PHP
PHP中MVC模式的模板引擎开发经验分享
2011/03/23 PHP
php上传大文件设置方法
2016/04/14 PHP
jQuery 事件队列调整方法
2009/09/18 Javascript
javascript判断ie浏览器6/7版本加载不同样式表的实现代码
2011/12/26 Javascript
JQuery的Ajax跨域请求原理概述及实例
2013/04/26 Javascript
js控制iframe的高度/宽度让其自适应内容
2014/04/09 Javascript
jquery禁止输入数字以外的字符的示例(纯数字验证码)
2014/04/10 Javascript
JS版的date函数(和PHP的date函数一样)
2014/05/12 Javascript
ext中store.load跟store.reload的区别示例介绍
2014/06/17 Javascript
JavaScript阻止浏览器返回按钮的方法
2015/03/18 Javascript
javascript函数特点实例分析
2015/05/14 Javascript
基于javascript实现简单计算器功能
2016/01/03 Javascript
XML、HTML、CSS与JS的区别整理
2016/02/18 Javascript
javascript中this指向详解
2016/04/23 Javascript
利用jquery实现实时更新歌词的方法
2017/01/06 Javascript
强大的 Angular 表单验证功能详细介绍
2017/05/23 Javascript
Vue的轮播图组件实现方法
2018/03/03 Javascript
vue中的provide/inject的学习使用
2018/05/09 Javascript
vue 优化CDN加速的方法示例
2018/09/19 Javascript
微信小程序基于picker实现级联菜单
2019/02/15 Javascript
详解vue-cli+es6引入es5写的js(两种方法)
2019/04/19 Javascript
Vue 的双向绑定原理与用法揭秘
2020/05/06 Javascript
原生js实现弹窗消息动画
2020/11/20 Javascript
python实现银行实战系统
2020/02/26 Python
matplotlib常见函数之plt.rcParams、matshow的使用(坐标轴设置)
2021/01/05 Python
美国时尚大码女装购物网站:Avenue
2019/05/24 全球购物
params有什么用
2016/03/01 面试题
技校生自我鉴定
2013/12/08 职场文书
十佳美德少年事迹材料
2014/02/05 职场文书
亲子读书活动方案
2014/02/22 职场文书
校园活动宣传方案
2014/03/28 职场文书
医院合作协议书
2014/08/19 职场文书
竞选班干部演讲稿500字
2014/08/20 职场文书
竞选班长演讲稿500字
2014/08/22 职场文书