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的(www.111cn.net)很多版本中都存在。
如果这个问题不解决,那么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);
from:http://www.111cn.net/phper/php-cy/67815.htm

最新文章

  1. jqGrid插件getCol方法的一个改进
  2. SQL/LINQ/Lamda 写法[转发]
  3. effective OC2.0 52阅读笔记(七 系统框架)
  4. 高尔夫管理系统SSH
  5. JSP网站开发基础总结《十一》
  6. 匈牙利 算法&模板
  7. Eclipse中为自己写完的函数添加注释(快捷键ALT+SHIFT+J)
  8. 网络html查看器
  9. <select>在chrome浏览器下背景透明问题
  10. MySQL事务处理和锁机制
  11. hdu 4940 无源汇有上下界最大流
  12. Node.js笔记4
  13. codeblocks快捷键及设置
  14. Sql Server 存储过程中查询数据无法使用 Union(All)
  15. MyBatis中多对多关系的映射和查询
  16. RTMP规范协议
  17. C语言 提取double的每一位
  18. PyCharm 4.0.4 开启代码自动补全
  19. 【Android实验】 数据存储与访问sqlite
  20. Mybatis-Generator自动生成Dao、Model、Mapping等相关映射文件(懒人版)

热门文章

  1. javascript简写精练
  2. Tomcat下HTTPS双向认证配置以及客户端调用案例
  3. [转]基本Guava工具
  4. apache跨域
  5. [memory]虚拟地址空间分布
  6. Java的WAR包文件分析
  7. AndroidAnnotations库的使用
  8. 〖Linux〗gun screen 配置文件
  9. UI Automation的两个成熟的框架(QTP 和Selenium)
  10. excel合并同类项去重求和功能