查询字符串值中可以使用连字符吗?

问题描述 投票:0回答:3

我的问题与这个问题有关。除了我的问题更具体,因为它是关于连字符是否可以在查询字符串参数值中使用。

我正在用 PHP 解析

$_SERVER['QUERY_STRING']
。我想知道在查询字符串值中使用连字符(例如下面的情况)在语法上是否正确,或者连字符是否必须在浏览器 URL 中转义。下划线呢?

http://example.com/?q1=query-string-value-one&q2=query-string-value-two

根据 this document 连字符在所有符合标准的浏览器中应该没问题,但我想仔细检查一下。

谢谢。

php http encoding query-string
3个回答
29
投票

您正在谈论必须使用

urlencode
函数进行编码的查询字符串参数:

在对要在字符串中使用的字符串进行编码时,此函数很方便 查询 URL 的一部分,作为将变量传递给下一个的便捷方法 页。

根据文档

-
不需要编码。


16
投票

连字符可用于查询字符串参数名称


0
投票

这是官方文档https://datatracker.ietf.org/doc/html/rfc3986#section-2.3

URI 中允许但没有保留的字符
目的被称为无保留。这些包括大写和小写 字母、十进制数字、连字符、句点、下划线和波形符。

  unreserved  = ALPHA / DIGIT / "-" / "." / "_" / "~"
© www.soinside.com 2019 - 2024. All rights reserved.