汉字转拼音,大家有用过没?里面是一个完整的类,但不晓得为什么要这样算 它是按照chr函数出来的ASCII码进行判断,具体为什么,要研究了ASCII码的规律才知道。(个人推测是这样) 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 $p*256 + $q - 65536; 65536==256*256,也就是2的16次方,总共有2个bytes$p和$q最大是255,最小是0,所以范围是256$p*256,相当于把$p存储在那两个bytes的高位。而$q,则存储在$bytes的低位。GBK一个字符是2bytes,$p在这里,就高位的byte,而$q就是低位的。-65536,它这里有点故弄玄虚的意味。如果我把上面的数据改成+,那么就不需要-65536了。当然代码也要随之改变一下。1)它这个算法效率很低。如果是我,我会用个二分法来查询。2)他的代码有很多多余的地方,例如在getChineseSpell函数的foreach循环里,$result按他这样写就得赋值很多次了。 他的$chineseSpellList是一个拼音对应编码的数组。这个编码是根据GBK的前后两个bytes相加而来的。如果没有那个数组,单纯通过数字是无法获得拼音的。 那是不是就是说php对汉字的编码,是按照拼音排列的?这样就能准确的通过计算得出他的位置 按照surfchen的说法,应该是这样。但不是php对汉字的编码,而是ASCII的编码。 应有相关库,即汉字对应拼音每个汉字对应一个拼音,多对一'a'=>-20319, 'ai'=>-20317, 'an'=>-20304, 'ang'=>-20295, 拼音1=>汉字编码1拼音2=>汉子编码2这里汉字编码的意思,是这样的:1)你应该知道,GB2312里,汉字是由两个bytes组成。2)你还应该知道,一个bytes就是8个bits,可以表示256种可能。例如,它可以表示十进制的0到255.2)假设某个字“X”,它的第一个bytes是167,第二个bytes是180。那么,该汉字X的编码就是167*256+180-256*256需要注意的是,我这里所说的汉字编码,并非一种标准的编码,只是我们几个在这个帖子里对那个程序所用的编码方式的一种称呼。 嘿嘿, 这个算法的根据是gb2312编码 中 的 第一级汉字的确是按拼音排列的所以用这个条件排除了其它符号和二级汉字: ($num <-20319||$num>-10247)其它的楼上都解释了 如何实现对一个文字进行渐变 用PHP代码将数据导出到excel PHP5.0 和mysql5.0 和apache2.0 的配置方法和安装文件?急啊。。帮个忙啦。。。。。。。。。。 apche服务启动不成功 关于mysql like查询问题 一段PHP代码,如何完成像表单提交一样的过程来操作数据库?请老师指点,谢谢! 谁有iis+php 和apache +php 的速度比较结果 请问:php如何获取所有session? 小弟就是想问问,能不能这样写php代码啊?true和flase用不来。 【在线等】请问这个地址怎么实现重写? 图片管理 代码 新手问题 PHP运行问题
2)他的代码有很多多余的地方,例如在getChineseSpell函数的foreach循环里,$result按他这样写就得赋值很多次了。
php对汉字的编码,是按照拼音排列的?这样就能准确的通过计算得出他的位置
每个汉字对应一个拼音,多对一'a'=>-20319,
'ai'=>-20317,
'an'=>-20304,
'ang'=>-20295,
拼音2=>汉子编码2这里汉字编码的意思,是这样的:1)你应该知道,GB2312里,汉字是由两个bytes组成。
2)你还应该知道,一个bytes就是8个bits,可以表示256种可能。例如,它可以表示十进制的0到255.
2)假设某个字“X”,它的第一个bytes是167,第二个bytes是180。那么,该汉字X的编码就是167*256+180-256*256需要注意的是,我这里所说的汉字编码,并非一种标准的编码,只是我们几个在这个帖子里对那个程序所用的编码方式的一种称呼。
其它的楼上都解释了