取消关注公众号 取消关注公众号对方知道吗( 三 )


是什么奇怪的策略吗?比如说城市、姓氏发音优先?好吧,这样“秘”和“重”都可以说得通 , 但“浅”怎么解释?就算查到了浅确实是个稀有姓氏 , 但是人家也发音“qiǎn”啊喂 。
至此可能就需要转化一下想法了,按照奥卡姆剃刀原理——“如无必要 , 勿增实体”,把推测简化一下,或许首字母排列并不是什么重要内容,产品和程序在做的时候并不会特别处理 。
那么实际在应用的开发中,对相关规则的处理可能就是产品提出列表按首字母排序,程序使用已经封装好的库快速上线 。
如此一来只要找到相关的轮子这个谜题就可以得到解决——即使我们可能并没有办法明白为什么第一个处理相关需求的产品和开发人员要这样处理,但他们的工作确实导致了现在的现象 。
通过了解相关开发情况 , 这个需求往更深的底层逻辑是需要把汉字转换成拼音 , 再截取首字母,再进一步排序 。
一些将汉字转换成拼音的程序本质是比对字符,然后再选取字符对应的拼音字符,这里的对应关系是靠一张提前写好的字库确定的 。
如无特殊情况,一般来说在选择字符对应发音的时候 , 程序就直接选择默认靠前的发音 。
实际工作中 , 不管是为了减少工作量,还是列表的浏览观感,大部分首字母排序都不考虑实意和发音,按字符默认选择 。
然而我在github上查阅了java和js常用库的字库后,发现其结果又和微信的顺序不一样了 。如下图,不管是java还是js相关字库大部分默认的拼音还是最常用的……
到最后我也没找到类似的字库可以完整解释微信公众号排序的现象 。只能推测微信用的字库可能有点问题,或者按照网络中提及的更先进的做法 , 微信在汉字转换拼音的过程中侧重向地名、人名等 , 具体程序的规则就不得而知了 。
不过不管怎么样,这个“浅”放在这很难受啊喂!也没啥常用的人名、地名吧!
最后再补充一个有限范围内容的中文字母排序规则的规范案例 。
在支付宝火车票购买中的目的地筛选,也是按名称首字母排序,但并没有多音字错位的问题 。实际观察可以发现所有中文城市名旁都有英文代号简写,其首字母就是城市首字母的缩写,在底层实现的过程中大概率是没有再使用汉字转拼音的操作,而直接利用代号进行排序,自定义了规范的对应关系 。
最后~欢迎关注我们的公众号,见证两个产品小白的成长 。
本文由@叨叨石 原创发布于人人都是产品经理 。未经许可,禁止转载 。
题图来自Unsplash,基于 CC0 协议 。

推荐阅读