url解码破折号和下划线
问题描述:
我正在尝试为Ajax站点推荐一个人类可读的URL结构。我喜欢用短划线或下划线来表示多个单词。url解码破折号和下划线
因此,例如:http://www.mysite/Kent-Smith/
面临的挑战是,我们已经在我们被认为可能有两种划线或下划线URL过滤系统一束多字的关键字。 (我想我们系统中的一些金融代码使用下划线)。
我卡在解码方面的东西?我必须使用%20吗?
谢谢!
答
我想你会做的是:
- 有指定的“逃离”字符 -
\
(反斜杠)是常见的这种 - 编码时,先用
\\
,然后所有替换所有\
-
与\-
,然后用破折号填充所有空格。 (顺序很重要,在这里!) - 在解码时,先更换未前面有
\
用空间中的所有短划线,那么所有\-
与-
那么所有\\
与\
。
例如:说你的名字是Jo\hn Smith-Jones
(我知道这是不可能有人在他们的名字中间的反斜杠,但...)
然后你编码:与\\
取代\
:Jo\\hn Smith-Jones
现在用\-
替换-
:Jo\\hn Smith\-Jones
现在用破折号代替空格:Joh\\n-Smith\-Jones
(最终结果)
这确实会导致在编码结果中出现奇怪的反斜杠,但只有在第一位存在标点符号时才会出现奇怪的反斜杠。
等等,还有一件事我只是想到了。反斜杠可能不适用于URL,因此可能使用不同的字符 - 过程仍然完全相同,只需用其他任何替换反斜杠即可。
快乐黑客!
继续使用 - 和_你的网址(你是真正问,%20是用于编码的空间) – Lyke 2011-05-19 20:14:07
我想我的问题提炼出来,如果我们使用破折号作为我们的分隔符,然后我们想要制作一个url的项目之一是连字符名称'smith-jones'什么会发生? – dan 2011-05-19 20:24:56