由於 .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
3 comments On ASP.Net 的 UTF-8 轉 Big5
請問一下
如果ASP.NET在WEBCONFIG裡用UTF-8
是不是有可能讓JAVASCRIPT寫繁體中文資料到SQL時變成UNICODE呢?
如果是的話,可否有何方式避免?
謝謝。
SYS,
何謂「JAVASCRIPT寫繁體中文資料到SQL時變成UNICODE」?
這跟用 web.config 用 UTF-8 有什麼關連嗎?
感謝大大,解決我輸出Excel編碼問題~~
網路上很多都是從文字的編碼下手…卻沒有人從輸出文件的編碼格式下手…感謝大大分享此篇文章,解決我的問題!!