栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何对URL进行编码以避免Java中的特殊字符?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何对URL进行编码以避免Java中的特殊字符?

URL的构造很棘手,因为URL的不同部分对允许使用什么字符有不同的规则:例如,加号保留在URL的查询部分中,因为它表示空格,但在URL的路径部分中保留了一个空格。加号没有特殊含义,空格编码为“%20”。

RFC2396解释(在2.4.2节中),完整的URL始终采用其编码形式:您获取各个组件(方案,权限,路径等)的字符串,并根据其自己的规则对每个组件进行编码,然后将它们组合成完整的URL字符串。尝试构建完整的未编码URL字符串然后对其进行单独编码会导致一些细微的错误,例如路径中的空格被错误地更改为加号(符合RFC的服务器会将其解释为真实的加号,而不是编码的空格)。

在Java中,构建URL的正确方法是使用

URI
类。使用将URL组件作为单独的字符串的多参数构造函数之一,它将根据该组件的规则正确地转义每个组件。该
toASCIIString()
方法为您提供了正确转义的编码字符串,可以将其发送到服务器。要_解码_ URL,请
URI
使用单字符串构造函数构造一个对象,然后使用访问器方法(例如
getPath()
)来检索已解码的组件。

不要

URLEnprer
上课!尽管有名称,该类实际上执行HTML表单编码,而不是URL编码。这是
正确的串联未编码字符串,使一个“未编码”的网址,然后通过它通过
URLEnprer
。这样做会导致问题(尤其是上述关于路径中的空格和加号的问题)。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/399931.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号