2025年3月22日 星期六 甲辰(龙)年 月廿一 设为首页 加入收藏
rss
您当前的位置:首页 > 文本与office

如何用excel urldecode解码把url编码转为汉字?

时间:05-22来源:作者:点击数:231

统计分析可以反映出网站运营的情况,并根据实际作出相应的调整,是站长必需的基础技能。ytkah感觉最好用的是谷歌统计,里面有个搜索关键词及对应受访页面,这个功能对优化用处很大,但大家都知道访问不太顺畅。statcounter也有相似的功能,但免费版只能显示最近几天或最近几百条的记录。bd统计、cnzz也有类似的功能,只是不太明显,没注意的话可能发现不到,没错,就是访问明细那。最相关的文章:如何从统计中批量获取BD搜索关键词及对应的入口页面?

以上是cnzz的截图,只能显示最近7天的数据,可以每周下载一次,最好能每天都看,seo是一个持续的过程。

说了那么多,进入正题。把访问明细表导出来后会发现有些页面是其他搜索页,比如博客园自带的搜索

这些搜索页url是经过编码的,如何用excel urldecode解码把url编码转为汉字?如上图所示,A1转为A5的形式

在excel左上角的菜单,点击 “开发工具” - 选“Visual Basic”,在新界面中选 “插入” - “模块”,输入如下代码

  • Function URLDecode(ByVal strIn)
  • URLDecode = ""
  • Dim sl: sl = 1
  • Dim tl: tl = 1
  • Dim key: key = "%"
  • Dim kl: kl = Len(key)
  • sl = InStr(sl, strIn, key, 1)
  • Do While sl > 0
  • If (tl = 1 And sl <> 1) Or tl < sl Then
  • URLDecode = URLDecode & Mid(strIn, tl, sl - tl)
  • End If
  • Dim hh, hi, hl
  • Dim a
  • Select Case UCase(Mid(strIn, sl + kl, 1))
  • Case "U" 'Unicode URLEncode
  • a = Mid(strIn, sl + kl + 1, 4)
  • URLDecode = URLDecode & ChrW("&H" & a)
  • sl = sl + 6
  • Case "E" 'UTF-8 URLEncode
  • hh = Mid(strIn, sl + kl, 2)
  • a = Int("&H" & hh) 'ascii码
  • If Abs(a) < 128 Then
  • sl = sl + 3
  • URLDecode = URLDecode & Chr(a)
  • Else
  • hi = Mid(strIn, sl + 3 + kl, 2)
  • hl = Mid(strIn, sl + 6 + kl, 2)
  • a = ("&H" & hh And &HF) * 2 ^ 12 Or ("&H" & hi And &H3F) * 2 ^ 6 Or ("&H" & hl And &H3F)
  • If a < 0 Then a = a + 65536
  • URLDecode = URLDecode & ChrW(a)
  • sl = sl + 9
  • End If
  • Case Else 'Asc URLEncode
  • hh = Mid(strIn, sl + kl, 2) '高位
  • a = Int("&H" & hh) 'ascii码
  • If Abs(a) < 128 Then
  • sl = sl + 3
  • Else
  • hi = Mid(strIn, sl + 3 + kl, 2) '低位
  • a = Int("&H" & hh & hi) '非ascii码
  • sl = sl + 6
  • End If
  • URLDecode = URLDecode & Chr(a)
  • End Select
  • tl = sl
  • sl = InStr(sl, strIn, key, 1)
  • Loop
  • URLDecode = URLDecode & Mid(strIn, tl)
  • End Function

保存

关掉VB窗口,直接在A5单元格输入框输入函数=URLDecode(A1),就可以得到所要的结果了如果要把

中文编译成编码呢?也是可以的(ps:excel 与 wps表格提供有默认的 =ENCODEURL() 函数提供把汉字及部分符号转为URL编码,但反过来把url编码转换为汉字或符号的就无。)

  • Function GetURL$(txt$, Optional LC = &H804)
  • Dim a() As Byte: a = StrConv(txt, vbFromUnicode, LC)
  • For i = 0 To UBound(a)
  • GetURL = GetURL & "%" & Right("0" & Hex(a(i)), 2)
  • Next
  • End Function

 

方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门