2014-04-01 153 views
0

我正在開發ASP.NET MVC應用程序。 此應用程序顯示有關產品的詳細信息。URL中的特殊字符

產品名稱可以有任何特殊字符,如單引號,百分號,註冊符號的一個帶圈和「R」內,商標符號等

目前,所有這些被替換爲' - '。 如果名字是這樣的:

超 - 男子100%滌綸針織襯衫

看起來像這樣的網址:

8080/super---men-s-100-polyester-knit-shirts/maverick 
- men-s-100-polyester-knit-shirts 

這是在JS中完成,像這樣:

Name.replace(/([[email protected]#$%^&*()_+=`{}\[\]\|\\:;'"<>,.\/? ])+/g, '-').replace(/^(-)+|(-)+$/g, ''); 

所以問題是,如果名稱顯示爲-i s在URL中? 如果是,請指點一些。 如果不是,請提供一些有效的理由,比如今天所遵循的標準,這將有助於我將觀點貫穿於整個表格。

問候。

+0

可能重複(http://stackoverflow.com/questions/1856785/characters-allowed-in-a-url) –

回答

0

簡短的回答是不要搗鼓它。它和盒子一樣好。

Url只能包含少量的字母數字字母。這基本上意味着你只能有0-9 a-z和 - _。 〜。

所有其他字符需要編碼。現在你可以擁有阿拉伯文網址了,它已經變得更加複雜了。

但假設你的網站是印度 - 歐洲這就是它。所以你永遠無法在你的網址中獲得完整的產品名稱。

並且將它們重命名爲更酷的內容,例如在網址中用%替換%可能會給您的網址帶來災難,因爲在某些情況下,「假」名稱可能不會唯一,因此最終會導致不可靠的路由。

看看URI characters on wiki

的[允許在URL中的字符]