2012-02-23 39 views
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 

我的問題:

  1. 是否有任何需要編碼非ASCII?
  2. 是否有任何函數只能編碼特殊字符? (不含非ASCII)
+0

不要使用'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

回答

相關問題