c# 真正完美的 漢字轉拼音
網上有很多說自己整理的漢字轉拼音是完美的,但使用後才發現都是半吊的瓶子,問題多多。
常見的生僻字,或多音字識別,轉換後簡直讓人感覺可怕。
主流的轉換有三種:hash匹配,npinyin,微軟pinyinconverter。
但單用這三個,都沒法做到完美,為什麼沒人考慮融合呢?
我的方案:npinyin+微軟pinyinconverter(首選npinyin)
微軟pinyinconverter
為什麼:微軟pinyinconverter很強大,但在多音字面前,犯了傳統的錯誤,按拼音字母排序。如【強】微軟居然優先【jiang】而不是】【qiang】
所以不能優選 pinyinconverter。
npinyin
很人性,很不錯的第三方庫,在傳統多音字前優先使用率較高的,但在生僻字面前有點無法轉換。(getinitials(strchinese) 有bug 如【洺】無法識別,但getpinyin可以正常轉換。)
總結:優先npinyin 翻譯失敗的使用微軟pinyinconverter。目測完美。
上**:
public抽了幾個常見錯字和姓名class
pingyinhelper
return
fullspell.tostring().toupper();}}
catch
(exception e)
return
string
.empty;
}//////
漢字轉首字母
/// ///
///public
static
string getfirstspell(string
strchinese)
return
fullspell.tostring().toupper();}}
catch
(exception e)
return
string
.empty;
}private
static
string getspell(char
chr)}}
return
coverchr;}}
測試如下:
[testmethod]public
void
pingyintest(),,
,,,,
,};
foreach (var keyval in
dict)
}
C 漢字轉拼音
region 獲取漢字的全拼 getpinyin 和拼音首字母 getcodstring region 屬性資料定義,漢字的機內碼陣列,機內碼對應的拼音陣列 漢字的機內碼陣列 private static int pyvalue newint 機內碼對應的拼音陣列 private static st...
C 漢字轉拼音
1 using system 2using system.collections.generic 3using system.linq 4using system.text 56 namespace common 7,13 14 15 16 17 18 19 20 21 22 23 24 25 26...
C 漢字轉拼音
其實這兩個dll 任何乙個都可以實現漢字轉拼音,然而 npinyin.dll 收錄的漢字並不全,但是很人性化,能識別一些常用的漢字。chncharinfo.dll 是微軟的很全但是不人性化。另外本套 外有乙個自己維護的個別漢字檔案,例如一些多音字姓氏。本程式的使用場景是姓名轉拼音,所以先判斷第乙個漢...