汉字首字首拼转换为英文字母

PHP网站,我们经常会遇到按照汉字的首拼排序,如城市,如分类等,那么我们就需要把首字首拼转换为英文字母,下面的函数就可以帮我们实现:

function getFristchar($str) {

    if(empty($str)){return ‘‘;}
    $fchar=ord($str{0});
    if($fchar>=ord(‘A‘)&&$fchar<=ord(‘z‘)) return strtoupper($str{0}); //ord()返回ASC码
    $s1=iconv(‘UTF-8‘,‘gb2312‘,$str); //icov()转换字符串编码
    $s2=iconv(‘gb2312‘,‘UTF-8‘,$s1);
    $s=$s2==$str?$s1:$str;
    $asc=ord($s{0})*256+ord($s{1})-65536;
    if($asc>=-20319&&$asc<=-20284) return ‘A‘;
    if($asc>=-20283&&$asc<=-19776) return ‘B‘;
    if($asc>=-19775&&$asc<=-19219) return ‘C‘;
    if($asc>=-19218&&$asc<=-18711) return ‘D‘;
    if($asc>=-18710&&$asc<=-18527) return ‘E‘;
    if($asc>=-18526&&$asc<=-18240) return ‘F‘;
    if($asc>=-18239&&$asc<=-17923) return ‘G‘;
    if($asc>=-17922&&$asc<=-17418) return ‘H‘;
    if($asc>=-17417&&$asc<=-16475) return ‘J‘;
    if($asc>=-16474&&$asc<=-16213) return ‘K‘;
    if($asc>=-16212&&$asc<=-15641) return ‘L‘;
    if($asc>=-15640&&$asc<=-15166) return ‘M‘;
    if($asc>=-15165&&$asc<=-14923) return ‘N‘;
    if($asc>=-14922&&$asc<=-14915) return ‘O‘;
    if($asc>=-14914&&$asc<=-14631) return ‘P‘;
    if($asc>=-14630&&$asc<=-14150) return ‘Q‘;
    if($asc>=-14149&&$asc<=-14091) return ‘R‘;
    if($asc>=-14090&&$asc<=-13319) return ‘S‘;
    if($asc>=-13318&&$asc<=-12839) return ‘T‘;
    if($asc>=-12838&&$asc<=-12557) return ‘W‘;
    if($asc>=-12556&&$asc<=-11848) return ‘X‘;
    if($asc>=-11847&&$asc<=-11056) return ‘Y‘;
    if($asc>=-11055&&$asc<=-10247) return ‘Z‘;
    return null;

     }
   $str="哈哈";
  echo getFristchar($str);

上面的原理就是根据ASC码找到对应汉字字符串的首拼英文字母

时间: 2025-01-02 01:04:47

汉字首字首拼转换为英文字母的相关文章

在vc中实现获取汉字拼音的首字母

在vc中实现获取汉字拼音的首字母 void GetFirstLetter(CString strName, CString& strFirstLetter){    TBYTE ucHigh, ucLow;    int  nCode;    CString strRet;    strFirstLetter.Empty();    for (int i=0; i<strName.GetLength(); i++)    {        if ( (TBYTE)strName[i] <

简单测试--C#实现中文汉字转拼音首字母

第一种: 这个是自己写的比较简单的实现方法,要做汉字转拼音首字母,首先应该有一个存储首字母的数组,然后将要转拼音码的汉字与每个首字母开头的第一个汉字即"最小"的汉字作比较,这里的最小指的是按拼音规则比较最小,例如a比h小,所以"爱"比"恨"小,同一个字母开头的拼音比较大小以此类推.最后实现的结果是只转汉字,对于中文特殊字符.标点符号和英文都原样输出,不转码. 实现方法如下: 1 using System; 2 using System.Colle

C# 获取汉字的拼音首字母(转)

原文:https://blog.csdn.net/younghaiqing/article/details/62417269 一种是把所有中文字符集合起来组成一个对照表:另一种是依照汉字在Unicode编码表中的排序来确定拼音的首字母.碰到多音字时就以常用的为准(第一种方法中可以自行更改,方法为手动把该汉字移动到对应的拼音首字母队列,我们这里介绍第二种. 获取汉字拼音的首字母是一个在做项目的过程中经常需要用到的功能,今天我们主要来探讨下C# 获取汉字的拼音首字母 static void Main

提取汉字拼音的首字母

这个能取大部分汉字的首字母, 但还不全, 有些UNICODE的汉字是取不到的, 要想取到所有汉字的首字母,最好是能做一个UNICODE汉字和拼音的对照表,通过对照表查. GB2312标准共收录6763个汉字,其中一级汉字3755个,二级汉字3008个:同时,GB2312收录了包括拉丁字母.希腊字母.日文平假名及片假名字母.俄罗斯语西里尔字母在内的682个全形字符. GB2312的出现,基本满足了汉字的计算机处理需要,它所收录的汉字已经覆盖99.75%的使用频率.GB2312中对所收汉字进行了"分

MySQL数据库获取多个汉字拼音的首字母函数

需求简介:最近的一个项目,想实现如下图所示的显示效果.很明显,如果能够获取对应的汉字词组中每个汉字的拼音首字母就可以实现了,如果是固定的几组汉字,人为的拼一下就可以 了,不过项目中有多处功能需要这个效果,并且事先也不知道对应的汉字是什么,所以就需要一个函数来完成这件事情了,根据网上查询的资料自己改进了一个 函数实现的效果,现分享如下. 1:阅读建议      如果你还没有看过我上一篇博文——MySQL数据库获取汉字拼音的首字母函数,强烈建议请先看一下,因为本篇博文是在她的基础之上写的,相关雷同的

ios汉字转拼音首字母

ios汉字转拼音首字母 //获取拼音首字母(传入汉字字符串, 返回大写拼音首字母) - (NSString *)firstCharactor:(NSString *)aString { //转成了可变字符串 NSMutableString *str = [NSMutableString stringWithString:aString]; //先转换为带声调的拼音 CFStringTransform((CFMutableStringRef)str,NULL, kCFStringTransform

mysql数据库中查询汉字的拼音首字母

本人提供的方法有如下特点: 1.代码精简,使用简单,只要会基本的SQL语句就行2.不用建立mysql 函数等复杂的东西3.汉字库最全,可查询20902个汉字方法如下:1.建立拼音首字母资料表Sql代码:(最好再加上主键和索引) DROP TABLE IF EXISTS `pinyin`; CREATE TABLE `pinyin` ( `PY` varchar(1), `HZ1` varchar(1), `HZ2` varchar(1) ) ; INSERT   INTO   `pinyin` 

C# 获取汉字的拼音首字母

/// <summary> /// 在指定的字符串列表CnStr中检索符合拼音索引字符串 /// </summary> /// <param name="CnStr">汉字字符串</param> /// <returns>相对应的汉语拼音首字母串</returns> public static string GetSpellCode(string CnStr) { string strTemp="&quo

oracle函数获取汉字拼音的首字母

CREATE OR REPLACE FUNCTION F_TRANS_PINYIN_CAPITAL(P_NAME IN VARCHAR2) RETURN VARCHAR2 AS V_COMPARE VARCHAR2(100); V_RETURN VARCHAR2(4000); FUNCTION F_NLSSORT(P_WORD IN VARCHAR2) RETURN VARCHAR2 AS BEGIN RETURN NLSSORT(P_WORD, 'NLS_SORT=SCHINESE_PINYI