PHP利用ICU扩展intl快速实现汉字转拼音以及按拼音首字母分组排序
ICU(International Components for Unicode)里提供了transliterator(直译器),
可以很方便把其他语言(比如简体中文)转为拉丁文表示:
http://cn2.php.net/manual/zh/transliterator.transliterate.php
Transliterator: allows getting latin representation of strings in various languages.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
|
苹果上的CFStringTransform/kCFStringTransformToLatin汉字转拼音也是通过ICU transform实现的:
http://userguide.icu-project.org/transforms/general#TOC-ICU-Transliterators
http://nshipster.com/cfstringtransform/
使用php5-intl(依赖ICU:libicu52)的简体中文(zh_CN)排序器collator按拼音排序:
http://cn2.php.net/manual/zh/collator.sort.php
php-src/ext/intl --enable-intl --with-icu-dir=DIR
相关: MySQL数据表排序规则COLLATE=utf8_general_ci
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
|
如果元素1和2加上引号变成字符串类型的话,则1和2排序后会出现在开头.
查看已经安装的软件包目录文件结构:
dpkg -L libicu52:amd64
/usr/lib/x86_64-linux-gnu/libicu*
/usr/lib/x86_64-linux-gnu/libicudata.so.52.1 动态库23MB
/usr/lib/x86_64-linux-gnu/libicudata.a 静态库23MB
Windows上则是:
php\icu*.dll
php\ext\php_intl.dll
下面实现了常用的按汉字拼音首字母分组排序的功能:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
|
附:
ls命令,Linux和Windows的文件管理器,显示如下:
1 2 a b 华山 华夏 中国 中华 重量 重阳
数字,字母,汉字(按拼音排序,但不能识别多音字)
汉字方面,下面的自然排序跟上面有所不同:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
|
几种排序的比较:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
|
转载于:https://my.oschina.net/u/3268486/blog/2208802
PHP利用ICU扩展intl快速实现汉字转拼音以及按拼音首字母分组排序相关推荐
- php根据汉字首字母分组,利用PHP获取汉字首字母并且分组排序详解
前言 本文主要给大家介绍了关于PHP获取汉字首字母并分组排序的相关内容,因经常我们在做项目的时候,会有按首字母排序的需求 比如: 美团的城市选择 http://www.meituan.com/inde ...
- SQL Server根据汉字笔划和取得拼音首字母进行排序
做房产网站,已经有了小区模板表,将小区的名称一律输入数据表中供登记用户进行选择.发现一个排序的问题:小区名称加载至下拉列表中时默认只是按照主键进行了升序排序,无任何规律,名称找起来非常麻烦.如何按小区 ...
- php 汉字按字母排序,在PHP中,将一个汉字数组按照拼音首字母进行排序
(之前发的这篇博文因为含有敏感关键字,只好重发一遍了) $str = "我们可以在浏览器中看到,当鼠标移到元素上时,元素开始向右移动,开始比较慢,之后则比较快,移开时按原曲线回到原点.&qu ...
- mysql 实现按首字母字典序排序以及根据字段汉字首字母搜索
目录 mysql 实现按首字母字典序排序 mysql 根据字段汉字首字母搜索 mysql 实现按首字母字典序排序 mysql 一个表中的某一个字段存储的是人的名字 name 字符编码utf8_gene ...
- php 将中文字符转英文字母_PHP实现将汉字转换为拼音及获取词语首字母的方法...
本文实例讲述了PHP实现将汉字转换为拼音及获取词语首字母的方法.分享给大家供大家参考,具体如下: 最近要开发将汉字转换为拼音和得到首字的功能记录下来哈子:呵呵~ class Pinyin{ priva ...
- sql根据汉字内容自动产生拼音和五笔首字母
CREATE FUNCTION fun_hong_py(@nr VARCHAR(1000)) RETURNS @temp TABLE(pyall VARCHAR(10),wball VARCHAR(1 ...
- .net core通过PinYinConverterCore实现汉字转拼音,获取中文字符串首字母
文章目录 一.事故现场 二.解决方法 1.安装方法 2.代码示例 #中文转拼音 #获取中文字符串首字母 一.事故现场 项目之前使用的.net framework,可以通过引用 Microsoft.In ...
- android 仿微信联系人 首字母分组快速索引
总结是一种习惯,不能停,一停人就懒了,都快一个月没有写了!该提提神了! 进入正题:android 仿微信联系人 首字母快速索引,先用下美团的索引效果图: 1.自定义View字母索引栏(右边那一列): ...
- 对汉字依据首字母进行排序
JDK自带的Collator包含的汉字太少,对一些生僻的姓氏不能进行排序.推荐使用: com.ibm.icu.text.Collator <dependency><groupId&g ...
最新文章
- php ImageMagick扩展
- 给用户培训的几点感受
- html5能实现网络游戏吗,kbengine + cocos2d_js实现html5网络游戏mmorpg(全套代码+资源)...
- 经典题:poj2104-区间第k小 整体二分学习
- 面试官:数据量大的情况下分页查询很慢,有什么优化方案?
- log4j的相关jar包总结
- 微信小程序 | 来自小程序开发者的实例教程 ①
- 电子计算机厂 四月份生产计,一题多解 分数和百分数应用题(1)
- nvme命令中prp_linux里的nvme驱动代码分析(加载初始化)
- 阿里云手机号短信设置
- 最新计算机java毕业设计题目选题推荐2023
- 计算机系统时间设置打不开,电脑时间或日期不对的修改方式
- 计算机硬件和系统重装,重装系统对电脑有什么影响【图文】
- 上海科技大学信息科学与技术学院夏令营
- 基于go websocket写一个聊天室
- 北漂IT男返乡2年的三线楼市观察(宜昌夷陵篇)-原创
- 懒人教你用猕猴桃一月饱减16斤_过路老熊_新浪博客
- bc vc投资_【融资系列】 VC投资中的常见分期追加投资
- C++实现RS485通信
- [英语]在英语学习的过程中学到的学习方法