encode URI (spaces etc.), without encode non-ASCII

2019-07-30 00:17发布

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:

  1. Is there any need to encode non-ASCII ?
  2. Is there any function that encode only special characters ? (without non-ASCII)

1条回答
▲ chillily
2楼-- · 2019-07-30 00:43
  1. Yes.
  2. No.

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.

查看更多
登录 后发表回答