在ASP將字串轉成 Big5 位元串以十六進制表示

古老的 ASP 程式通常都在 ANSI 模式下。

近年來已朝向 Unicode (UTF-8) 的環境開發
在第一行加入: <%@LANGUAGE="VBScript" CODEPAGE="65001" %>
可以讓程式碼、語言核心、HTTP IO 都使用 Unicode 了。

如果有一個特殊狀況要把 Unicode 網頁的文字轉回去 Big5 怎麼辦呢?


'=== 將(Unicode)字串轉成 Big5 位元串以十六進制表示
Private Function HexBig5(strData)
Dim o,B,I,out
Set o = Server.CreateObject("ADODB.Stream")

o.Charset = "big5"
o.Mode = 3 '1讀 2寫 3讀寫
o.Type = 2 '1二進制 2純文字
o.Open
o.WriteText strData

'o.SaveToFile Server.MapPath("t.txt"),2 '測試輸出文字檔
o.Position = 0 '從頭開始
o.Charset = "big5"
o.Type = 1
B = o.Read

out = ""
For I= 1 To o.size
out = out & HexB(AscB(MidB(B,I,1)))
Next
HexBig5 = out
End Function

Private Function HexB(value)
hexB = Right("0" & HEX(value),2)
End Function