URL中的特殊字符

时间:2014-04-01 07:07:07

标签: asp.net-mvc-4

我正在开发一个ASP.NET MVC应用程序。 此应用程序显示有关产品的详细信息。

产品名称可以包含任何特殊字符,例如单引号,百分比符号,已注册符号,带圆圈的符号和' R'在里面,商标符号等。

目前所有这些都被替换为' - '。 如果名称是这样的:

  

Super-Men的100%涤纶针织衬衫

在网址中显示如下:

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

这在Js中就是这样完成的:

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

所以问题是,名称是否应该按原样显示在URL中? 如果有,请指点。 如果不是,请提供一些有效的理由,例如今天遵循的标准,这将有助于我把重点放在桌面上。

问候。

1 个答案:

答案 0 :(得分:0)

简短的回答不是摆弄它。它开箱即用就好了。

网址只能包含少量字母数字字母。这基本上意味着你只能拥有0-9 a-z和 - _。 〜。

需要对所有其他字符进行编码。既然你可以拥有阿拉伯语网址,那它就会变得更加复杂。

但假设您的网站是indo-european,那就是它。因此,您的网址永远不会有完整的产品名称。

并将它们重命名为更酷的东西,例如将%替换为&#34;%&#34;在网址中可以给你的网址带来灾难,就像在某些情况下的假冒&#34;名称可能不会最终唯一,因此最终会出现不可靠的路由。

查看URI characters on wiki