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

  统计分析可以反映出网站运营的情况,并根据实际作出相应的调整,是站长必需的基础技能。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),就可以得到所要的结果了

  如果要把中文编译成编码呢?也是可以的

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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏DeveWork

WordPress 网站开发“微信小程序”实战(四)

本站微信小程序版“DeveWork极客”在中文WP 圈子可谓是一直被模仿,从未被超越。如今快速迭代,写作本文的现在是1.6 版本。作为“WordPress 开发...

2156
来自专栏Guangdong Qi

小Q-百度定位及递增递减的Label数字未完待续,持续更新中

1775
来自专栏别先生

摸索出来的chrom调试前后台数据(Java&&Ajax)交互的方法分享一下咯!!!

1:开始没想分享的,后来看到有大佬分享如何使用Chrom的工具进行调试,哈哈哈哼,我就借着他的博客写一下我摸索的如何进行前后台数据交互吧(注:反正是自己瞎  捣...

33110
来自专栏木子昭的博客

<进击的虫师>如何让程序"懂很多"?

? 最近在做一个有意思的小项目, 在一个聊天对话中, 你向电脑提出问题, 他会自动分词,然后根据关键字, 自动答复你 对所有的关键字做出解释, 工作量实在...

3608
来自专栏日暮星辰

使用Percona安装tokudb存储引擎

由分形树索引支持的PerconaTokuDB®是一款开源的,用于Percona Server的高性能存储引擎,可提高可扩展性和运行效率。专为满足大数据应用的苛刻...

682
来自专栏FreeBuf

一个脑洞“颇大”的恶搞链接

事件起因 这其实是一件很偶然的事情,前几天在某大佬群里看大佬装逼。突然一个平日不怎么冒泡的群友发了一条链接。本着“这群里都是好人 ”的想法我就天真的点了进去.....

2259
来自专栏owent

atgateway内置协议流程优化-加密、算法协商和ECDH

之前就有计划优化游戏服务器框架网关层的内部协议了,这次泰国旅游回来,新公司入职前,正海有空来做这件事。

592
来自专栏每日一篇技术文章

100 行代码写一个手机AR

Step-1.实现两个协议 1.AVCaptureMetadataOutputObjectsDelegate 2.UINavigationControlle...

742
来自专栏.net core新时代

数据字典生成工具之旅系列文章导航

数据字典生成工具之旅系列文章导航 宣传语 数据字典生成工具、数据字典文档生成工具、NPOI入门、NPOI下载、NPOI中文教程、NPOI实例、DocX组件操作W...

1929
来自专栏华仔的技术笔记

Xcode 7 自动测试XCTestCase

3387

扫描关注云+社区