编码 URI(空格等),不编码非 ASCII 字符
当我使用 escape/encodeURI/encodeURIComponent 来编码 URI 时,
它对特殊字符(如“? [ ] &”)和所有非 ASCII 字符进行编码。
我更喜欢链接看起来像:
http:/site.com/?tm=ДОБРОЕ**%20**УТРО
相反:
http:/site.com/?tm=%u0414%u041E%u0411%u0420%u041E%u0415**%20**%u0423%u0422%u0420%u041E
我的问题:
- 是否需要对非 ASCII 进行编码?
- 有没有只编码特殊字符的函数? (不含非 ASCII)
When I use escape/encodeURI/encodeURIComponent to encode URI,
it's encoding special characters (like "? [ ] &" ), and all non-ASCII characters.
I prefer the link to look like:
http:/site.com/?tm=ДОБРОЕ**%20**УТРО
instead:
http:/site.com/?tm=%u0414%u041E%u0411%u0420%u041E%u0415**%20**%u0423%u0422%u0420%u041E
My questions:
- Is there any need to encode non-ASCII ?
- Is there any function that encode only special characters ? (without non-ASCII)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
在 http://www.w3.org/Addressing/URL/5_BNF.html< /a> 人们可以读到:
“国家”和“标点符号”字符不会出现在任何作品中,因此可能不会出现在 URL 中。
In http://www.w3.org/Addressing/URL/5_BNF.html one can read:
The "national" and "punctuation" characters do not appear in any productions and therefore may not appear in URLs.