全半形轉換及簡繁轉換

包含 c#, asp.net, vb.net, delphi.net 等 .net framework 的開發討論區
回覆文章
頭像
tim
文章: 1379
註冊時間: 2008年 11月 26日, 00:49

全半形轉換及簡繁轉換

文章 tim »

文章引用自: http://www.uuu.com.tw/public/content/ar ... 16tips.htm

作  者:周季賢 精誠資訊 恆逸教育訓練中心資深講師
技術分類:程式設計


在開發程式時,總不免會有讀取各種的文件的需求出現,而在撰寫程式處理各種文件的過程中,遇到所處理不同的文字特別煩人,例如訂單有繁體又有簡體或是文字或符號有全形又有半形;在這種時候,總是讓人束手無策,往往求救無門的就只好先"手動"來將文件統一,或是有點小聰明的就會找到"其他的工具"來先轉換文件。但是不管是哪一種,總不如直接使用.NET的程式直接撰寫來的快對吧?

其實在Visual Basic內建的類別Strings中,就提供了一套能夠轉換繁簡體與全半形的函式,使用這套元件時,如果您是C#的開發者,就必須要先加入Microsoft.VisualBasic.dll元件的參考,如下圖所示:
win01.gif
win01.gif (3.2 KiB) 已瀏覽 7639 次
而加入參考之後,也要記得順便引用一下Microsoft.VisualBasic的命名空間,才能直接使用Strings類別。
我們要使用的是Strings類別中的StrConv方法,該方法需要提供三個參數:
 1. 欲處理的字串
 2. 轉型的類型(為一列舉常數VbStrConv)
 3. 處理字元的LocaleID,選擇性參數,不提供則使用系統預設值

例如我們有一段全形的文字,希望能夠轉換成為半形,那我們就可以在第二個參數使用列舉常數VbStrConv的Narrow來指定轉換為半形,如下列程式碼:

代碼: 選擇全部

 string s1 = "HELLO!";
 string s2 = Strings.StrConv(s1, VbStrConv.Narrow);
 MessageBox.Show(s2);


那麼在執行之後就會出現如下圖,程式將半形文字"Hello!"顯示在訊息視窗內。
win02.gif
win02.gif (5.37 KiB) 已瀏覽 7639 次
又或者我們有一段簡體的文字,希望能轉換成為繁體,那我們也可以使用第二個參數使用列舉常數VbStrConv的TraditionalChinese來指定轉換為繁體,至於第三個參數我們可以使用1033,如下列程式碼:

代碼: 選擇全部

 string s3 = "好用的简繁体与全半形转换元件";
 string s4 = Strings.StrConv(s3, VbStrConv.TraditionalChinese, 1033);
 MessageBox.Show(s4);
那麼在執行之後就會出現如下圖,程式將繁體文字"好用的簡繁體與全半形轉換元件"顯示在訊息視窗內。
win03.gif
win03.gif (7.16 KiB) 已瀏覽 7639 次
了解這套函式使用方式,你以後在轉換繁簡體與全半形時,就可以輕鬆自己做不求人了。
多多留言, 整理文章, 把經驗累積下來.....
回覆文章