ASP 如何實作 VB 的 StrConv 函數來進行 Unicode 轉換

ASP 如何實作 VB 的 StrConv 函數來進行 Unicode 轉換

ASP 如何實作 VB 的 StrConv 函數來進行 Unicode 轉換 ( vbFromUnicode / vbUnicode )

VB6 的StrConv 函數說明 :

傳回一特定轉換後的 Variant (String)。

語法

StrConv(string, conversion, LCID)

StrConv 函數的語法有以下的指名引數:

單元 說明

string 必要引數。為欲轉換的字串運算式。

conversion 必要引數:為Integer。其值的和決定轉換的型態。

LCID 選項的。如果與系統LocaleID不同,則為LocaleID(系統LocaleID為缺省值。)

vbUnicode (64) 據系統的預設字元碼對應頁將字串轉成 Unicode。

vbFromUnicode (128) 將字串由 Unicode 轉成系統的預設字元碼對應頁。

ASP 程式碼如下 :

<%

Response.Write ConvUnicode(FromUnicode("強力Power鎯頭Hammer"))

' FromUnicode

Private Function FromUnicode(strData)

Dim objStm

Set objStm = Server.CreateObject("ADODB.Stream")

With objStm

.Charset = "Big5"

.Type = 2

.Open

.WriteText strData

.Position = 0

.Charset = "Unicode"

.Type = 1

FromUnicode = MidB(.Read, 1)

End With

End Function

' Unicode

Public Function ConvUnicode(ByVal strData)

Dim rs, stm, bytAry, intLen

If Len(strData & "") > 0 Then

strData = MidB(strData, 1)

intLen = LenB(strData)

Set rs = Server.CreateObject("ADODB.Recordset")

Set stm = Server.CreateObject("ADODB.Stream")

With rs

.Fields.Append "X", 205, intLen

.Open

.AddNew

rs(0).AppendChunk strData & ChrB(0)

.Update

bytAry = rs(0).GetChunk(intLen)

End With

With stm

.Type = 1

.Open

.Write bytAry

.Position = 0

.Type = 2

.Charset = "Big5"

ConvUnicode = .ReadText

End With

End If

On Error Resume Next

stm.Close

Set stm = Nothing

rs.Close

Set rs = Nothing

End Function

%>