ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: lolmuta

[求助] 如何Encode Url 字元 ' ?

[复制链接]

TA的精华主题

TA的得分主题

发表于 2015-7-8 22:16 | 显示全部楼层
coby001 发表于 2015-7-8 22:06
啥改进啊?

其实是楼主在连接字符串时把单引号 ' 嵌套了,疏忽而已。

单引号改成双引号,就能解决特殊字符问题?

TA的精华主题

TA的得分主题

发表于 2015-7-9 13:10 | 显示全部楼层
williamsmile 发表于 2015-7-8 22:16
单引号改成双引号,就能解决特殊字符问题?

特殊字符 应该在构造URL时处理好,而不是在对URL进行转义时才来弄。

楼主的问题出在传递参数疏忽大意。不是什么特殊字符的问题。

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2015-7-9 14:09 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
lolmuta 发表于 2015-7-8 17:44
欣赏一下外国人的暴力硬写encode与decode,感觉似乎也没多麻烦…不过麻烦的是中文字转不了
encode的部份 ...

非英数字符转国际双码的encode函数:

  1. Function GetUTF$(txt$)
  2.     For i = 1 To Len(txt)
  3.         s = Mid(txt, i, 1): t = AscW(s): If t < 0 Then t = 65536 + t
  4.         If t < 128 Then GetUTF = GetUTF & s Else GetUTF = GetUTF & "%E" & Hex(t \ 4096) & "%" & Hex((t \ 64) Mod 64 + 128) & "%" & Hex(t Mod 64 + 128)
  5.     Next
  6. End Function
复制代码

  1. Function ChrUTF$(txt$) 'Change UTF To Chr or ChrW
  2.     Do
  3.         i = InStr(j + 1, txt, "%"): If i = 0 Then ChrUTF = ChrUTF & Mid(txt, j + 1): Exit Do
  4.         r = Val("&H" & Mid(txt, i + 2, 1)) * 4096 + ((Val("&H" & Mid(txt, i + 4, 2)) - 128) * 64 + Val("&H" & Mid(txt, i + 7, 2)) - 128)
  5.         ChrUTF = ChrUTF & Mid(txt, j + 1, i - j - 1) & ChrW(r): j = i + 8
  6.     Loop
  7. End Function
复制代码

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-7-9 14:20 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
coby001 发表于 2015-7-9 13:10
特殊字符 应该在构造URL时处理好,而不是在对URL进行转义时才来弄。

楼主的问题出在传递参数疏忽大意 ...

我的url会是一个接类Sql 语法,其中会遇到什么怪字串实在不好说像|| \ 之类的都有可能会在url 中,所以我需要一个万能转的函数

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-7-9 14:23 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2015-7-9 14:33 | 显示全部楼层
lolmuta 发表于 2015-7-9 14:20
我的url会是一个接类Sql 语法,其中会遇到什么怪字串实在不好说像|| \ 之类的都有可能会在url 中,所以我 ...

你这种想法是错的

当你要把SQL加到URL结构中之前,就要把特殊的字符先搞定,

SQL 的规则和 URL 的规则不尽相同
搞个万能的函数,最后你 可能得到的是一团乱麻~

TA的精华主题

TA的得分主题

发表于 2015-7-9 14:37 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-7-9 14:40 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 lolmuta 于 2015-7-9 14:47 编辑
coby001 发表于 2015-7-9 14:33
你这种想法是错的

当你要把SQL加到URL结构中之前,就要把特殊的字符先搞定,

所以"特殊字符"应该有那些呢?
一定有所谓的万用转法,
因为
像我在web viewer(chrome)的url 上打出不论多么长的url,web viewer都能完整的转出,

用javascript写(就是有个文字框可以输入复杂的url 然后按送出前经由javascript来转,也能达到同样的效果)

但就唯独vba目前只发现'转起来有问题.

TA的精华主题

TA的得分主题

发表于 2015-7-9 15:04 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2015-7-9 15:10 | 显示全部楼层
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-4-27 11:06 , Processed in 0.047086 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表