C 真正完美的 漢字轉拼音

2021-08-15 08:40:10 字數 1369 閱讀 3326

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 是微軟的很全但是不人性化。另外本套 外有乙個自己維護的個別漢字檔案,例如一些多音字姓氏。本程式的使用場景是姓名轉拼音,所以先判斷第乙個漢...