最近想做乙個快速搜尋的功能,例如qq通訊錄通過數字鍵速查聯絡人
首先要把聯絡人姓名轉化為拼音,然後再進行匹配
1、利用微軟提供的拼音庫,計算出漢字的拼音的方法,此方法支援多音字符
解壓得到chspinyinconv.msi(拼音類庫) 和 chspinyinconv.msi(簡繁體類),安裝(記住安裝路徑)
在專案中新增引用,把chncharinfo.dll 引入進來
新增命名空間,具體用法看vs的提示,這裡只是演示
using microsoft.international.converters.pinyinconverter;
private2、第二種注音的方法(不支援多音字符)string topinyin(string
hanzi)
else
}return
pinyinstr.tolower();
}
這種方法是根據中文的編碼方式計算出來的,具體的編碼的話大家自行查閱,這裡講類的定義
view code
public注意:不支援多音字,每個漢字只有乙個拼音class
chinesecharutil
return
ht; }
}static
string g(int
num)
static
bool in(int lp, int hp, int
value)
#endregion
//////
獲取漢字拼音,特殊字元去掉,英文不做處理
/// ///
///public
static
string getpinyin(string
hz)
else
}return
ret.tostring();
}//////
獲取漢字拼音的首字母
/// ///
///public
static
string getpinyinindex(string
str)
}return
ret.tostring();
}//////
獲取乙個漢字的拼音聲母
/// ///
unicode格式的乙個漢字
///漢字的聲母
public
static
char
convert(char chinese)
);//perform the conversion from one encoding to the other.
byte asciibytes =encoding.convert(unicode, gb2312, unicodebytes);
//計算該漢字的gb-2312編碼
int n = (int)asciibytes[0] << 8
; n += (int)asciibytes[1
];
//根據漢字區域碼獲取拼音聲母
if (in(0xb0a1, 0xb0c4, n)) return'a
';if (in(0xb0c5, 0xb2c0, n)) return'b
';if (in(0xb2c1, 0xb4ed, n)) return'c
';if (in(0xb4ee, 0xb6e9, n)) return'd
';if (in(0xb6ea, 0xb7a1, n)) return'e
';if (in(0xb7a2, 0xb8c0, n)) return'f
';if (in(0xb8c1, 0xb9fd, n)) return'g
';if (in(0xb9fe, 0xbbf6, n)) return'h
';if (in(0xbbf7, 0xbfa5, n)) return'j
';if (in(0xbfa6, 0xc0ab, n)) return'k
';if (in(0xc0ac, 0xc2e7, n)) return'l
';if (in(0xc2e8, 0xc4c2, n)) return'm
';if (in(0xc4c3, 0xc5b5, n)) return'n
';if (in(0xc5b6, 0xc5bd, n)) return'o
';if (in(0xc5be, 0xc6d9, n)) return'p
';if (in(0xc6da, 0xc8ba, n)) return'q
';if (in(0xc8bb, 0xc8f5, n)) return'r
';if (in(0xc8f6, 0xcbf0, n)) return's
';if (in(0xcbfa, 0xcdd9, n)) return't
';if (in(0xcdda, 0xcef3, n)) return'w
';if (in(0xcef4, 0xd188, n)) return'x
';if (in(0xd1b9, 0xd4d0, n)) return'y
';if (in(0xd4d1, 0xd7f9, n)) return'z
';return'\0';}
}
3、第三種注音方法(支援多音字)
這個方法比較簡單好用,原理很簡單,定義所有的漢字拼音,遍歷所有的漢字,找出對應的拼音
新建乙個查詢類,定義靜態查詢方法,具體看**
筆記 關於漢字注音
最近想做乙個快速搜尋的功能,例如qq通訊錄通過數字鍵速查聯絡人 首先要把聯絡人姓名轉化為拼音,然後再進行匹配 1 利用微軟提供的拼音庫,計算出漢字的拼音的方法,此方法支援多音字符 解壓得到chspinyinconv.msi 拼音類庫 和 chspinyinconv.msi 簡繁體類 安裝 記住安裝路...
筆記 關於漢字注音 漢字轉拼音,首拼
最近想做乙個快速搜尋的功能,例如qq通訊錄通過數字鍵速查聯絡人 首先要把聯絡人姓名轉化為拼音,然後再進行匹配 1 利用微軟提供的拼音庫,計算出漢字的拼音的方法,此方法支援多音字符 解壓得到chspinyinconv.msi 拼音類庫 和 chspinyinconv.msi 簡繁體類 安裝 記住安裝路...
注音漢字對照表
file bopomofo.txt name 注音漢字對照表 author zyl910 version v1.0 updata 2006 6 27 1.字母表 aa bb cc dd ee ff gg hh ii jj kk ll mm nn oo pp qq rr ss tt uu vv 萬 w...