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下防止单引号,双引号在接受页面转义的设置方法
Sep 25 PHP
php 远程图片保存到本地的函数类
Dec 08 PHP
php MsSql server时遇到的中文编码问题
Jun 11 PHP
PHP面向对象程序设计之接口用法
Aug 20 PHP
PHP递归遍历指定目录的文件并统计文件数量的方法
Mar 24 PHP
Linux+Nginx+MySQL下配置论坛程序Discuz的基本教程
Dec 23 PHP
PHP连接MSSQL方法汇总
Feb 05 PHP
Zend Studio使用技巧两则
Apr 01 PHP
php 在字符串指定位置插入新字符的简单实现
Jun 28 PHP
Yii2中YiiBase自动加载类、引用文件方法分析(autoload)
Jul 25 PHP
PHP使用CURL实现下载文件功能示例
Jun 03 PHP
thinkphp 获取控制器及控制器方法
Apr 16 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加速 eAccelerator配置和使用指南
2009/06/05 PHP
CI框架在CLI下执行占用内存过大问题的解决方法
2014/06/17 PHP
php制作圆形用户头像的实例_自定义封装类源代码
2017/09/18 PHP
javascript脚本编程解决考试分数统计问题
2008/10/18 Javascript
jQuery 连续列表实现代码
2009/12/21 Javascript
javascript使用eval或者new Function进行语法检查
2010/10/16 Javascript
js简单正则验证汉字英文及下划线的方法
2016/11/28 Javascript
基于jPlayer三分屏的制作方法
2016/12/21 Javascript
React学习之事件绑定的几种方法对比
2017/09/24 Javascript
Router解决跨模块下的页面跳转示例
2018/01/11 Javascript
Vue精简版风格概述
2018/01/30 Javascript
[06:16]第十四期-国士无双绝地翻盘之撼地神牛
2014/06/24 DOTA
python之文件的读写和文件目录以及文件夹的操作实现代码
2016/08/28 Python
python实现kNN算法
2017/12/20 Python
详解python中的 is 操作符
2017/12/26 Python
纯python实现机器学习之kNN算法示例
2018/03/01 Python
python 列表递归求和、计数、求最大元素的实例
2018/11/28 Python
Python 旋转打印各种矩形的方法
2019/07/09 Python
Python 类的私有属性和私有方法实例分析
2019/09/29 Python
Python3 pickle对象串行化代码实例解析
2020/03/23 Python
在python中使用pyspark读写Hive数据操作
2020/06/06 Python
Python Mock模块原理及使用方法详解
2020/07/07 Python
python rsa-oaep加密的示例代码
2020/09/23 Python
德国机车企业:FC-Moto
2017/10/27 全球购物
公司JAVA开发面试题
2015/04/02 面试题
广告学专业自荐信范文
2014/02/24 职场文书
项目建议书格式
2014/03/12 职场文书
食品销售计划书
2014/04/26 职场文书
爱心捐书活动总结
2014/07/05 职场文书
协会周年庆活动方案
2014/08/26 职场文书
缓刑人员思想汇报
2014/10/11 职场文书
护理见习报告范文
2014/11/03 职场文书
解除劳动关系协议书2篇
2014/11/28 职场文书
唐山大地震观后感
2015/06/05 职场文书
关于python中readlines函数的参数hint的相关知识总结
2021/06/24 Python
不同品牌、不同型号对讲机如何互相通联
2022/02/18 无线电