Wednesday, October 22, 2008

[轉帖]繁簡字體互換

-- 作者:ruok-- 發佈時間:2008-6-19 21:46:00-- [轉帖]繁簡字體互換
在 VB.Net 中使用 StrConv 函數進行繁簡字體轉換
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
var reload=1;
-- 作者:TWG-- 發佈時間:2008-6-25 12:07:00-- ASP.Net 的 UTF-8 轉 Big5ASP.Net 的 UTF-8 轉 Big5
由於 .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)
由於 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 字串轉換成指定編碼字串位元組陣列

No comments: