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 相关文章推荐
在Zeus Web Server中安装PHP语言支持
Oct 09 PHP
Thinkphp模板中使用自定义函数的方法
Sep 23 PHP
解决cPanel无法安装php5.2.17
Jun 22 PHP
php给一组指定关键词添加span标签的方法
Mar 31 PHP
PHP中preg_match正则匹配中的/u、/i、/s含义
Apr 17 PHP
PHP中文竖排转换实现方法
Oct 23 PHP
PHP单例模式定义与使用实例详解
Feb 06 PHP
php实现的中文分词类完整实例
Feb 06 PHP
php求数组全排列,元素所有组合的方法总结
Mar 14 PHP
PHP实现的DES加密解密封装类完整实例
Apr 29 PHP
CI框架(CodeIgniter)操作redis的方法详解
Jan 25 PHP
PHP之认识(二)关于Traits的用法详解
Apr 11 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与XML的PDF文档生成技术
2006/10/09 PHP
PHP中动态显示签名和ip原理
2007/03/28 PHP
php面向对象编程self和static的区别
2016/05/08 PHP
PHP实现重载的常用方法实例详解
2017/10/18 PHP
Laravel 5.4前后台分离,通过不同的二级域名访问方法
2019/10/13 PHP
laravel Task Scheduling(任务调度)在windows下的使用详解
2019/10/22 PHP
纯js和css实现渐变色包括静态渐变和动态渐变
2014/05/29 Javascript
node.js中的console.warn方法使用说明
2014/12/09 Javascript
JS实现一个按钮的方法
2015/02/05 Javascript
js实现对table动态添加、删除和更新的方法
2015/02/10 Javascript
JavaScript使用encodeURI()和decodeURI()获取字符串值的方法
2015/08/04 Javascript
Js获取图片原始宽高的实现代码
2016/05/17 Javascript
浅析JavaScript中var that=this
2017/02/17 Javascript
Angular directive递归实现目录树结构代码实例
2017/05/05 Javascript
Angular中的$watch、$watchGroup、$watchCollection
2017/06/25 Javascript
集合Bootstrap自定义confirm提示效果
2017/09/19 Javascript
手把手教你写一个微信小程序(推荐)
2018/10/17 Javascript
给Python的Django框架下搭建的BLOG添加RSS功能的教程
2015/04/08 Python
在Heroku云平台上部署Python的Django框架的教程
2015/04/20 Python
Python实现向服务器请求压缩数据及解压缩数据的方法示例
2017/06/09 Python
tensorflow实现在函数中用tf.Print输出中间值
2020/01/21 Python
python GUI库图形界面开发之PyQt5中QWebEngineView内嵌网页与Python的数据交互传参详细方法实例
2020/02/26 Python
浅谈Python中os模块及shutil模块的常规操作
2020/04/03 Python
pandas读取csv文件提示不存在的解决方法及原因分析
2020/04/21 Python
python实现xml转json文件的示例代码
2020/12/30 Python
html5使用canvas绘制太阳系效果
2014/12/15 HTML / CSS
canvas 基础之图像处理的使用
2020/04/10 HTML / CSS
匡威意大利官方商店 :Converse意大利
2018/11/27 全球购物
中科创达面试题
2016/12/28 面试题
年终晚会活动方案
2014/08/21 职场文书
收款授权委托书
2014/10/02 职场文书
夫妻婚内购房协议书
2014/10/05 职场文书
违章停车检讨书
2014/10/21 职场文书
生产实习心得体会范文
2016/01/22 职场文书
Vue项目打包、合并及压缩优化网页响应速度
2021/07/07 Vue.js
Python Pandas 删除列操作
2022/03/16 Python