永发信息网

如何用EXCEL VBA将汉字转成GB2312的URL编码,如输入"中国",生成"%D6%D0%B9%FA",用于网络查询.

答案:2  悬赏:40  手机版
解决时间 2021-04-03 11:56
如何用EXCEL VBA将汉字转成GB2312的URL编码,如输入"中国",生成"%D6%D0%B9%FA",用于网络查询.
最佳答案
据说有 MultiByteToWideChar 和 WideCharToMultiByte 这两个函数可以使用,但是我没用过!
写了2个函数,自己改吧!
Public Function uncode(x As Range) As String
On Error Resume Next
MsgBox Asc(Mid(x, 1, 1)) + 65536
If x.Columns.Count <> 1 Then
uncode = "Error"
Exit Function
End If
If Len(x) = 0 Then Exit Function
Dim a, b, c, i
b = ""
For i = 1 To Len(x)
a = Mid(x, i, 1)
If Asc(a) < 0 Then
uncode = uncode & sixteen(Asc(a) + 65536)
Else
uncode = uncode & a
End If
Next
End Function
Public Function sixteen(m As Long) As String
n = m
x = "": y = ""
Do While n <> 0
a = n Mod 2
n = n \ 2
x = a & x
Loop

Do While Len(x) Mod 4 <> 0
x = "0" + x
Loop
Do While Len(x) > 0
Select Case Right(x, 4)
Case "0000"
y = "0" + y
Case "0001"
y = "1" + y
Case "0010"
y = "2" + y
Case "0011"
y = "3" + y
Case "0100"
y = "4" + y
Case "0101"
y = "5" + y
Case "0110"
y = "6" + y
Case "0111"
y = "7" + y
Case "1000"
y = "8" + y
Case "1001"
y = "9" + y
Case "1010"
y = "A" + y
Case "1011"
y = "B" + y
Case "1100"
y = "C" + y
Case "1101"
y = "D" + y
Case "1110"
y = "E" + y
Case "1111"
y = "F" + y
End Select
x = Left(x, Len(x) - 4)
Loop
sixteen = y
End Function来自:求助得到的回答
全部回答
我在C#程序中会转,EXCEL中你可以用函数,VBA中不知道用什么,你用CODE(‘中’)把中字转成数字码54992,然后再用DEC2HEx(54992,4)转成十六进制数D6D0,VBA的方法我再看看。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
映客漏纹身会封号吗
井里面多一点念什么
凡属法院审判工作中具体应用法律的问题,由(
供热通风与空调工程技术工作5年以后的工资和
肇庆什么地方适合情侣去玩??
用菜油泡老鼠有什么用
红布林哪些人不能吃
吴敏霞是海宁人吗?
股份支付计入所有者权益的金额是什么意思?
单选题根瘤菌在根内不断地繁殖,并且刺激根内
泰州梅兰春酒厂产龙鳯和谐酒二十五年陈酿酒价
万州永辉超市买的衣服可以退吗
唐朝史上可有李元芳此人?
问个事情 白天网络不卡 一到凌晨网络卡 是不
走方队过程中,当喊向右看时,最右边的人要不
推荐资讯
i7 6700K 和 i7 4970K 你选了哪个啊?
一千根弦读后感400字
ps中RGB三种颜色不同程度分别相加形成哪些颜
过十二岁生日父母台词,十二岁生日父母贺词\
谁能借5000给我,救救急…
人为什么受到过量辐射会死亡
单片机IE和TCON为什么可以用十六进制表示,都
唐朝时期有甘蔗种植吗
求《植物私生活》的英汉字幕,注意,本人已下
把正整数:1,2,3,4,5,…,按如下规律排
单选题They have always treated&
香港过境签+港澳通行证一起使用是不是可以停
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?