VB.Net StrConv 函式介紹
Public Shared Function StrConv(ByVal Str As String, _
ByVal Conversion As Microsoft.VisualBasic.VbStrConv, _
Optional ByVal LocaleID As Integer) As String
參數
Str : 必要項。所要轉換的 String 運算式。
Conversion : 必要項。Microsoft.VisualBasic.VbStrConv 成員。指定所要執行的轉換型別的列舉值。
LocaleID : 選擇項。如果不同於系統 LocaleID 值,則使用此 LocaleID 值 (系統 LocaleID 值是預設值)。
Conversion 引數設定包括:
列舉成員 | 說明 |
VbStrConv.None | 不執行轉換 |
VbStrConv.LinguisticCasing | 使用大小寫的語言規格,而不是檔案系統 (預設值)。 |
VbStrConv.UpperCase | VbStrConv.UpperCase |
VbStrConv.LowerCase | VbStrConv.LowerCase |
VbStrConv.ProperCase | VbStrConv.ProperCase |
VbStrConv.Wide* | VbStrConv.Wide* |
VbStrConv.Narrow* | VbStrConv.Narrow* |
VbStrConv.Katakana** | VbStrConv.Katakana** |
VbStrConv.Hiragana** | VbStrConv.Hiragana** |
VbStrConv.SimplifiedChinese* | VbStrConv.SimplifiedChinese* |
VbStrConv.TraditionalChinese* | VbStrConv.TraditionalChinese* |
實際運用:
透過 StrConv 函式來進行繁體字及簡體字的相互轉換
Dim strData As String
' 將繁體中文字轉換成簡體中文
strData = StrConv("強力鎯頭的VB部落", VbStrConv.SimplifiedChinese, 2052)
' 簡體中文 (GB2312) 系統的 LocaleID (LCID) 為 2052
MessageBox.Show (strData) ' 顯示簡體中文字
' 將簡體中文字轉換成繁體中文
strData = StrConv(strData, VbStrConv.TraditionalChinese, 1028)
' 繁體中文 (Big5) 系統的 LocaleID (LCID) 為 1028
-------------------ASP.Net 的 UTF-8 轉 Big5-------------
ASP.Net 的 UTF-8 轉 Big5
由於 Convert 出來的是 byte[] ,所以注意上面用的是 BinaryWrite ,不是一般常用的 Write。
若還有興趣深入研究 .Net Framewrok 的轉碼,可以參考:
http://www.thecodeproject.com/useritems/Chinese_Style_Converter.asp
上面那個網址有詳細的做法及轉碼平台的建置,還能透過 Web Service 來做轉碼,教學跟實用都兼具。
如果是其它語言平台想在短時間內做好轉碼,也可以購買Chilkatsoft 的 Charset 商業元件,支援的字集也很多,中文編碼當然也在其中了,有需要可以多多支持。
.Net 元件:
http://www.chilkatsoft.com/Charset-DotNet.asp
ActiveX 元件:
http://www.chilkatsoft.com/Charset-ActiveX.asp
C++ 函式庫:
http://www.chilkatsoft.com/Charset-Library.asp
其它產品總覽:
http://www.chilkatsoft.com/products.asp
函數 myMultiByteToWideChar 將不同編碼方式字串轉 UniCode 字串
函數 myWideCharToMultiByte 將 Unicode 字串轉換成指定編碼字串位元組陣列
由於 .Net Framework 以 UTF-8 為預設的編碼,有時遇到需要輸出 Big5 時,就必需多做點手腳。
以下的範例是用 ASP.Net 將 UTF-8 轉為 Big5 的字元,並且寫出到網頁上。此時就不受 Web.Config 的設定限制了。(語法為 VB.Net)
- Response.ContentEncoding = System.Text.Encoding.GetEncoding("big5")
- Dim strUtf8 As Byte() = Encoding.Unicode.GetBytes(BarcodeBody) />
- Dim strBig5 As Byte() = Encoding.Convert(Encoding.Unicode, Encoding.Default, strUtf8 ) />
- Response.BinaryWrite(strBig5)