永发信息网

求教vb.net utf-8 解码

答案:2  悬赏:80  手机版
解决时间 2021-01-31 10:11
请教如何将这个utf8编码:%E9%80%81%E8%BE%BE%E6%97%A5%E6%9C%9F%20%E9%80%81%E8%BE%BE%E6%97%B6%E9%97%B4
解码出来的中文为:送达日期 送达时间

请教vb.net 代码 谢谢
最佳答案
Public Function GBKDecode(ByVal sInput As String) As String
sInput = sInput.Replace("%", "")
sInput = sInput.Replace(":", "")
Dim ret_GBKDecode As String = ""
Dim sLen As Integer = sInput.Length
Dim n As Integer = sLen \ 2
Dim sBytes(0 To n - 1) As Byte
'转化为字节码
For i As Integer = 1 To n
sBytes(i - 1) = CByte("&H" & sInput.Substring(2 * i - 2, 2))
Next
'将字节码转化为字符串
ret_GBKDecode = System.Text.Encoding.UTF8.GetString(sBytes)
Return ret_GBKDecode
End Function
'上面是函数,调用方法
MsgBox(GBKDecode(":%E9%80%81%E8%BE%BE%E6%97%A5%E6%9C%9F%20%E9%80%81%E8%BE%BE%E6%97%B6%E9%97%B4"))
全部回答

    'utf-8编码     '参数1:sinput 需要进行utf-8编码的字符串     '参数2:schar 可选参数,默认为“=”     public function utf8encode(byval sinput as string, optional byval schar as string = "=") as string     dim s_utf8bytes() as byte     dim s_ret as string = ""     s_utf8bytes = system.text.encoding.utf8.getbytes(sinput) '得到utf-8字节数组     for i as integer = 0 to s_utf8bytes.length - 1     if s_utf8bytes(i) <= 127 then     s_ret &= chr(s_utf8bytes(i))     else     '添加分隔符     if s_utf8bytes.length - i >= 3 then     s_ret &= schar & hex(s_utf8bytes(i) \ 16) & hex(s_utf8bytes(i) mod 16)     i += 1     s_ret &= schar & hex(s_utf8bytes(i) \ 16) & hex(s_utf8bytes(i) mod 16)     i += 1     s_ret &= schar & hex(s_utf8bytes(i) \ 16) & hex(s_utf8bytes(i) mod 16)     end if     end if     next     return s_ret     end function

    'utf-8解码函数     '参数1:sinput 需要解码的utf-8编码串     '参数2:schar 可选参数,默认为“=”     public function utf8decode(byval sinput as string, optional byval schar as string = "=") as string     dim s_bytes(0 to 2) as byte     dim s_ret as string = ""

    for i as integer = 0 to sinput.length - 1     if sinput.substring(i, 1) <> schar then     s_ret &= sinput.substring(i, 1)     else     if sinput.length - i >= 9 then     s_bytes(0) = cbyte("&h" & sinput.substring(i + 1, 2))     s_bytes(1) = cbyte("&h" & sinput.substring(i + 4, 2))     s_bytes(2) = cbyte("&h" & sinput.substring(i + 7, 2))     s_ret &= system.text.encoding.utf8.getstring(s_bytes)     i += 8     end if     end if     next     return s_ret     end function #end region

'例如: 1、调用utf8encode编码     sstr=utfencode("吉林")     msgbox sstr   '弹出信息 “=e5=90=89=e6=9e=97” 2、调用utfdecode解码     sstr=utfdecode("=e9=95=bf=e6=98=a5")     msgbox sstr   '弹出信息 “长春”

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
阿曼尼专业护肤造型地址在什么地方,想过去办
宋志夫中医诊所这个地址在什么地方,我要处理
我国有文字可考的历史,是从商朝甲骨文开始的
This kind of walkman looks_____and sells__
靓颜养生馆地址在什么地方,我要处理点事
白磷和红磷的区别?
湖北省,孝感市,应城市县,陈河镇,甘杨村,
六小龄童不是死了吗?电视剧《石敢当》扮演玉
鹅艺空间(青杠店)地址在什么地方,我要处理点
晚班十点多下班,没时间做饭菜,吃什么又营养又
美逸美容美发地址在什么地方,我要处理点事
青杠咏寿堂形象店地址有知道的么?有点事想过
同学们把各自的自我介绍制作成了卡片,开始抽
做IT技术支持需要知道哪些
双鱼座事业运
推荐资讯
河畔商务宾馆(抚顺新宾)地址好找么,我有些事
分子小于10,而大小与三分之一相等的分数有(
青汁对长期饮酒的女人有什么好处
西南铁路国际旅行总社火车票代售点地址好找么
2017年中国新丝路模特大赛怎么报名,有哪些分
龙江县齐齐哈尔凯达酒行我想知道这个在什么地
昨天去面试,明天让去报到,说让我拿上英语等级
制定生态影响型项目营运期生态跟踪监测方案时
芙蓉区长沙湘湖工商所哪位知道具体地址啊
溢香园小酒馆地址在哪,我要去那里办事
我的是明锐1.6手动的,今天去保养车完了后回
弘昌电镀怎么去啊,我要去那办事
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?