我正在尝试为Ajax网站推荐一个人类可读的URL结构。我喜欢使用短划线或下划线来表示多个单词。
例如:http://www.mysite/Kent-Smith/
挑战在于我们在系统中有一堆多个单词关键字,我们通过URL过滤可能有短划线或下划线。 (我想我们系统中的一些金融代码确实使用了下划线)。
我是否坚持解码方面的事情?我必须使用%20吗?
谢谢!
答案 0 :(得分:0)
我认为你会做的是:
\
(反斜杠)对于此\
替换为\\
,然后将所有-
替换为\-
,然后将所有空格替换为破折号。 (这里的顺序很重要!)\
的短划线替换为空格,然后将所有\-
替换为-
,然后将所有\\
替换为\
例如:说你的名字是Jo\hn Smith-Jones
(我知道某人不可能在他们的名字中间加上反斜杠,但是......)
然后您编码:将\
替换为\\
:Jo\\hn Smith-Jones
现在将-
替换为\-
:Jo\\hn Smith\-Jones
现在用破折号替换空格:Joh\\n-Smith\-Jones
(最终结果)
这确实会在编码结果的中间产生奇怪的反斜杠,但只有在首先出现标点时才会这样,所以这种情况相对不常见。
等等,还有一件我想到的事情。反斜杠可能不适用于URL,因此可能使用不同的字符 - 进程仍然完全相同,只需用其他任何内容替换反斜杠。
快乐黑客!
答案 1 :(得分:0)
我建议你使用空格,在URL中将它们编码为+
,并保留连字符: