Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Language agnostic 破折号和下划线的url解码_Language Agnostic_Url Encoding - Fatal编程技术网

Language agnostic 破折号和下划线的url解码

Language agnostic 破折号和下划线的url解码,language-agnostic,url-encoding,Language Agnostic,Url Encoding,我试图为Ajax站点推荐一种可读的URL结构。我想用破折号或下划线来表示多个单词 例如: 挑战在于,我们在系统中有一堆多个单词关键字,我们通过url筛选这些关键字,这些关键字可能有破折号或下划线。(我猜我们系统中的一些金融股票代码确实使用下划线) 我是不是被困在解码方面了?我必须使用%20吗 谢谢 我认为你应该做的是: 有一个指定的“转义”字符-\(反斜杠)对此很常见 编码时,首先将所有\替换为\,然后将所有-替换为\-,然后将所有空格替换为破折号。(这里的顺序很重要!) 解码时,首先用空格替换

我试图为Ajax站点推荐一种可读的URL结构。我想用破折号或下划线来表示多个单词

例如:

挑战在于,我们在系统中有一堆多个单词关键字,我们通过url筛选这些关键字,这些关键字可能有破折号或下划线。(我猜我们系统中的一些金融股票代码确实使用下划线)

我是不是被困在解码方面了?我必须使用%20吗


谢谢

我认为你应该做的是:

  • 有一个指定的“转义”字符-
    \
    (反斜杠)对此很常见
  • 编码时,首先将所有
    \
    替换为
    \
    ,然后将所有
    -
    替换为
    \-
    ,然后将所有空格替换为破折号。(这里的顺序很重要!)
  • 解码时,首先用空格替换前面没有
    \
    的所有破折号,然后用
    -
    替换所有
    -
    ,然后用
    \
    替换所有
    \
  • 例如:假设你的名字是“代码”JO\HN史密斯琼斯(我知道某人不太可能在他们的名字中间有反斜杠,但是……) 然后编码:将
    \
    替换为
    \
    Jo\\hn Smith Jones

    现在将
    -
    替换为
    -
    Jo\\hn Smith \-Jones

    现在用破折号替换空格:
    Joh\\n-Smith \-Jones
    (最终结果)

    <>这在编码结果的中间会导致奇怪的反斜杠,但是只有在第一个地方有标点符号时,这才是比较少见的。

    等等,我又想到了一件事。反斜杠可能不适用于URL,因此可能使用不同的字符-过程仍然完全相同,只需用其他字符替换反斜杠即可


    快乐的黑客

    我建议您使用空格,在URL中将其编码为
    +
    ,并保留连字符:


    继续,在你的url中使用-和u(你真正想问的是什么,%20是用来编码一个空格的),我想我的问题可以归结为,如果我们用破折号作为分隔符,那么我们想在url中使用的一个项目是连字符的名称“smith jones”,会发生什么?