日期:2014-05-17  浏览次数:21398 次

[紧急求救] 编码转换
问题说明:

1,我们用的是ASP
2,数据库是MSSQL
3,数据库字段Data存放的是短信内容,因为是短信猫发送,此字段需存的是UCS2格式的编码字符


A
比如我想向数据库里面Data字段(信息内容)写入汉字   测试  

需要把“测试”转换成UCS2码“6D4B8BD5”


B
比如我想读出数据库里面Data字段(信息内容)   “6D4B8BD5”  

需要把UCS2码“6D4B8BD5”转换成“测试”这两个汉字


哪位做过类似东西的大哥帮帮我啊,我搞不定。

需要两个转换函数。


------解决方案--------------------
Private Function HexU(ByVal lValue)
Dim tmp
tmp = Hex(lValue)
HexU = String(4 - Len(tmp), "0 ") & tmp 'UCS2是2字节16位的,因此转换成16进制,要满足4个字节
End Function

Public Function atou(ByVal strData)
Dim i, u
Dim r
For i = 1 To Len(strData)
u = AscW(Mid(strData, i, 1))
r = r & HexU(u)
Next
atou = r
End Function

Public Function utoa(ByVal strData)
Dim i, u
Dim r
For i = 1 To Len(strData) Step 4
u = CLng( "&H " & Mid(strData, i, 4))
r = r & ChrW(u)
Next
utoa = r
End Function

Dim s
s = atou( "ceshi测试 ")
Response.Write s & " <br/> "
Response.Write utoa(s) & " <br/> "
------解决方案--------------------
我也试了一下楼上的代码,似乎中文转不了哦