ASP.NET漢字轉(zhuǎn)拼音 - 輸入漢字獲取其拼音的具體實(shí)現(xiàn)
前不久看到有的朋友實(shí)現(xiàn)對(duì)商品名稱拼音的錄入,發(fā)現(xiàn)他的實(shí)現(xiàn)方式是手動(dòng)輸入的,—_—#、同志們,福利來(lái)了!
微軟為了開發(fā)者實(shí)現(xiàn)國(guó)際化語(yǔ)言的互轉(zhuǎn),提供了Microsoft Visual Studio International Pack,這個(gè)擴(kuò)展包里面有中文、日文、韓文、英語(yǔ)等各國(guó)語(yǔ)言包,并提供方法實(shí)現(xiàn)互轉(zhuǎn)、獲取拼音、獲取字?jǐn)?shù)、甚至獲取筆畫數(shù)等等。
在這里示例講的是輸入漢字,獲取其拼音,獲取拼音和獲取拼音首字母實(shí)現(xiàn)效果分別如下:

首先,去微軟官網(wǎng)下載Microsoft Visual Studio International Pack語(yǔ)言包,下載地址分別如下:
Microsoft Visual Studio International Pack 1.0 SR1
Microsoft Visual Studio International Feature Pack 2.0
下載后分別是“vsintlpack1.zip”、“Vsintlpack2.msi”、雙擊“Vsintlpack2.msi”安裝、路徑隨意、但是要記得、因?yàn)橐粫?huì)要引用的、
安裝“Vsintlpack2.msi”之后、解壓“vsintlpack1.zip”、里面包含七個(gè)語(yǔ)言包、
例如中文轉(zhuǎn)拼音“CHSPinYinConv.msi”、簡(jiǎn)體繁體互轉(zhuǎn)“CHTCHSConv.msi”等等。。
在這里我們用到的是“CHSPinYinConv.msi”、雙擊安裝成功后、打開Visual Studio、新建一個(gè)WinForm項(xiàng)目、窗體布局如上圖所示、
首先:添加剛剛安裝的語(yǔ)言包引用:
“D:\Program Files (x86)\Microsoft Visual Studio International Pack\Simplified Chinese Pin-Yin Conversion Library\ChnCharInfo.dll”
默認(rèn)是C盤、在這里我安裝在D盤了,然后添加using引用:
using Microsoft.International.Converters.PinYinConverter;//導(dǎo)入拼音相關(guān)
創(chuàng)建獲取拼音的方法:
/// <summary>
/// 漢字轉(zhuǎn)化為拼音
/// </summary>
/// <param name="str">漢字</param>
/// <returns>全拼</returns>
public static string GetPinyin(string str)
{
string r = string.Empty;
foreach (char obj in str)
{
try
{
ChineseChar chineseChar = new ChineseChar(obj);
string t = chineseChar.Pinyins[0].ToString();
r += t.Substring(0, t.Length - 1);
}
catch
{
r += obj.ToString();
}
}
return r;
}
創(chuàng)建獲取漢字拼音首字母的方法:
/// <summary>
/// 漢字轉(zhuǎn)化為拼音首字母
/// </summary>
/// <param name="str">漢字</param>
/// <returns>首字母</returns>
public static string GetFirstPinyin(string str)
{
string r = string.Empty;
foreach (char obj in str)
{
try
{
ChineseChar chineseChar = new ChineseChar(obj);
string t = chineseChar.Pinyins[0].ToString();
r += t.Substring(0, 1);
}
catch
{
r += obj.ToString();
}
}
return r;
}
然后在“轉(zhuǎn)拼音”按鈕的點(diǎn)擊事件中調(diào)用上述方法:
// 漢字轉(zhuǎn)拼音
private void btn_One_Click(object sender, EventArgs e)
{
string source = this.txt_ChineseCharacter_One.Text.Trim(); // 得到輸入的源字符
string result = GetPinyin(source); // 調(diào)用方法,獲取拼音
this.txt_Pinyin_One.Text = result;
}
在“轉(zhuǎn)首字母”按鈕點(diǎn)擊事件中調(diào)用上述方法:
// 轉(zhuǎn)首字母
private void btn_Two_Click(object sender, EventArgs e)
{
string source = this.txt_ChineseCharacter_One.Text.Trim(); // 得到輸入的源字符
string result = GetFirstPinyin(source); // 調(diào)用方法,獲取拼音
this.txt_Pinyin_One.Text = result;
}
到此,已經(jīng)完成了80%,運(yùn)行程序,你會(huì)發(fā)現(xiàn),當(dāng)點(diǎn)擊“轉(zhuǎn)拼音”的時(shí)候,結(jié)果是這樣子的:
并不是我開始說的那種“Gu Ying”的效果啊、這是因?yàn)槲以讷@取拼音的時(shí)候簡(jiǎn)單的處理了一下:
// 漢字轉(zhuǎn)拼音
private void btn_One_Click(object sender, EventArgs e)
{
string source = this.txt_ChineseCharacter_One.Text.Trim(); // 得到輸入的源字符
string result = string.Empty; // 轉(zhuǎn)拼音的結(jié)果
string temp = string.Empty; // 下面foreach用到的臨時(shí)變量
foreach (char item in source) // 遍歷每個(gè)源字符
{
temp = GetPinyin(item.ToString()); // 將每個(gè)字符轉(zhuǎn)拼音
// 處理:獲取首字母大寫、其余字母小寫
result += (String.Format("{0}{1} ", temp.Substring(0, 1).ToUpper(), temp.Substring(1).ToLower()));
}
//string result = GetPinyin(source); // 調(diào)用方法,獲取拼音
this.txt_Pinyin_One.Text = result;
}
OK、到此、這個(gè)功能已經(jīng)實(shí)現(xiàn)完成了,還有其余的語(yǔ)言包功能,和此類似,大家可以百度“Microsoft Visual Studio International Pack使用”、各種語(yǔ)言之間的互轉(zhuǎn)及功能示例就出來(lái)了。
- ASP.NET 根據(jù)漢字獲取漢字拼音的首字母(含多音字)
- 漢字轉(zhuǎn)拼音縮寫示例代碼(Silverlight和.NET 將漢字轉(zhuǎn)換成為拼音)
- asp.net 漢字轉(zhuǎn)換拼音及首字母實(shí)現(xiàn)代碼
- asp.net 根據(jù)漢字的拼音首字母搜索數(shù)據(jù)庫(kù)(附 LINQ 調(diào)用方法)
- asp.net(C#)把漢字轉(zhuǎn)化成全拼音函數(shù)(全拼)
- asp.net 自動(dòng)將漢字轉(zhuǎn)換成拼音第一個(gè)字母
- asp.net漢字轉(zhuǎn)拼音和獲取漢字首字母的代碼
- ASP.NET Core使用微軟官方類庫(kù)實(shí)現(xiàn)漢字轉(zhuǎn)拼音
相關(guān)文章
ASP.net 動(dòng)態(tài)加載控件時(shí)一些問題的總結(jié)
經(jīng)常見到有人說在ASP.net中不要使用動(dòng)態(tài)控件,我想主要的原因在于使用動(dòng)態(tài)控件會(huì)帶來(lái)一些問題,在做項(xiàng)目的過程中,我將由動(dòng)態(tài)加載控件引發(fā)的總是作了一個(gè)小小的總結(jié).2009-04-04
ASP.NET(VB)寫的后臺(tái)發(fā)送短信實(shí)現(xiàn)代碼
使用vb寫的后臺(tái)發(fā)送短信代碼,很實(shí)用的一項(xiàng)功能,感興趣的朋友可以了解下,或許對(duì)你學(xué)習(xí)asp.net vb有所幫助2013-02-02
Visual?Studio?2022常見的報(bào)錯(cuò)以及處理方案圖文詳解
許多用戶在使用Visual Studio的過程中常會(huì)遇到各種問題,下面這篇文章主要給大家介紹了關(guān)于Visual?Studio?2022常見的報(bào)錯(cuò)以及處理方案的相關(guān)資料,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下2023-04-04
asp.net checkbox 動(dòng)態(tài)綁定id GridView刪除提示
asp.net checkbox 動(dòng)態(tài)綁定id,需要的朋友可以參考下。雖然簡(jiǎn)單但不知道挺麻煩的。GridView刪除提示2009-10-10
C#實(shí)現(xiàn)pdf導(dǎo)出 .Net導(dǎo)出pdf文件
這篇文章主要為大家詳細(xì)介紹了C#實(shí)現(xiàn)pdf導(dǎo)出 .Net導(dǎo)出pdf文件,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-09-09
ASP.NET?Core設(shè)置Ocelot網(wǎng)關(guān)限流
這篇文章介紹了ASP.NET?Core設(shè)置Ocelot網(wǎng)關(guān)限流的方法,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-04-04
使用UserControl做網(wǎng)站導(dǎo)航條的思路 分析
使用UserControl做網(wǎng)站導(dǎo)航條的思路 分析...2007-09-09
asp.net下用js實(shí)現(xiàn)鼠標(biāo)移至小圖,自動(dòng)顯示相應(yīng)大圖
asp.net下用js實(shí)現(xiàn)鼠標(biāo)移至小圖,自動(dòng)顯示相應(yīng)大圖...2007-03-03
asp.net正則表達(dá)式刪除指定的HTML標(biāo)簽的代碼
抓取某網(wǎng)頁(yè)的數(shù)據(jù)后(比如描述),如果照原樣顯示的話,可能會(huì)因?yàn)樗锩姘瑳]有閉合的HTML標(biāo)簽而打亂了格式,也可能它里面用了比較讓人 費(fèi)解 的HTML標(biāo)簽,把預(yù)訂的格式攪亂.2010-09-09

