最近由於專案需要,對簡體中文轉拼音的演算法作了一些了解,然而在google找到的大多是獲得簡體中文拼音首字母的演算法,好不容易讓我找到了乙個sunrise.spell的類,專門用於中文轉完整拼音,覺得的確做得不錯,於是對它的演算法作了一些分析,總的來說覺得還是比較簡單的,拿出來與大家分享。
我們先來學習一些準備知識。gb2312編碼對於我們中國人是再熟悉不過了,我先簡單的分析一下它的編碼規則。gb2312編碼包括符號、數字、字母、日文、製表符等,當然最主要的部分還是中文,它採用16位編碼方式,簡體中文的編碼範圍從b0a1一直到f7fe,完整編碼表可以參考
如果我們把該編碼的每8位用十進位制來表示就是[176 | 161]到[247 | 254],這樣對於每個中文字元,我們都可以通過兩個值來表示它,如「啊」就是[176 | 161],「我」則是[206 | 210]。
通過上面的方法,我們就可以通過乙個二維座標對每乙個中文字進行定位,從而建立乙個二維表來實現中文和拼音的對應關係。當然我們會忽略一些特殊情況,比如漢字的多音字問題。由於乙個拼音可能對應多個漢字,而拼音的組合本來就不多,因此我們首先建立乙個拼音音節表,**如下,裡面列出了所有可能的組合情況,該表是一維陣列。
readonly
static
string
_spellmusiccode
=new
string;
中文轉換為完整拼音演算法原理分析
最近由於專案需要,對簡體中文轉拼音的演算法作了一些了解,然而在 google 找到的大多是獲得簡體中文拼音首字母的演算法,好不容易讓我找到了乙個 sunrise.spell 的類,專門用於中文轉完整拼音,覺得的確做得不錯,於是對它的演算法作了一些分析,總的來說覺得還是比較簡單的,拿出來與大家分享。我...
中文轉換為完整拼音演算法原理分析
最近由於專案需要,對簡體中文轉拼音的演算法作了一些了解,然而在google找到的大多是獲得簡體中文拼音首字母的演算法,好不容易讓我找到了乙個sunrise.spell的類,專門用於中文轉完整拼音,覺得的確做得不錯,於是對它的演算法作了一些分析,總的來說覺得還是比較簡單的,拿出來與大家分享。我們先來學...
中文轉換為完整拼音演算法原理分析
最近由於專案需要,對簡體中文轉拼音的演算法作了一些了解,然而在 google 找到的大多是獲得簡體中文拼音首字母的演算法,好不容易讓我找到了乙個 sunrise.spell 的類,專門用於中文轉完整拼音,覺得的確做得不錯,於是對它的演算法作了一些分析,總的來說覺得還是比較簡單的,拿出來與大家分享。我...