1
当我使用escape/encodeURI/encodeURIComponent来编码URI时,它编码特殊字符(如“?[] &”),并且所有非ASCII字符。编码URI(空格等),不编码非ASCII字符
我喜欢的链接看起来像:
http:/site.com/?tm=ДОБРОЕ**%20**УТРО
代替:
http:/site.com/?tm=%u0414%u041E%u0411%u0420%u041E%u0415**%20**%u0423%u0422%u0420%u041E
我的问题:
- 是否有任何需要编码非ASCII?
- 是否有任何函数只能编码特殊字符? (不含非ASCII)
不要使用'escape'编码百分比编码。首选'encodeURIComponent'。这样你的URI将是['http://example.com/?tm=%D0%94%D0%9E%D0%91%D0%A0%D0%9E%D0%95**%20**% D0%A3%D0%A2%D0%A0%D0%9E'](http://example.com/?tm=%D0%94%D0%9E%D0%91%D0%A0%D0%9E% D0%95 **%20 **%D0%A3%D0%A2%D0%A0%D0%9E)并且大多数浏览器将在地址栏和href工具提示中正确显示unicode字符。 (SO可能会编码自己的一些字符.. https://jsfiddle.net/bro8Lhza/) – Kaiido 2017-07-22 05:27:31