我试图在html中做一个查询字符串。我想传递的字符串是"Book Cover"。但我只找到了Book。我该怎么做呢?
下面是我的代码: <a href=book.php?category=Book Cover>Book Cover</a>
您需要对所有查询字符串变量进行编码,例如使用rawurlencode/rawurldecode
<a href="book.php?category=<?=rawurlencode('Book Cover')?>">Book Cover</a>
在PHP中:
$category = rawurldecode($_POST['category']);
在HTML中,该值止于空格:
<a href=book.php?category=Book Cover>Book Cover</a>
^
如果你想在HTML的值中包含一个空格,你需要添加引号:
<a href="book.php?category=Book Cover">Book Cover</a>
^ ^
在HTML中允许单引号和双引号。
现在值本身也有问题了:
book.php?category=Book Cover
`- URL stops here.
这是一个相对HTTP URL,对于任何HTTP URL,空格字符是一个特殊值。它通常不是URL的一部分,因此需要对其进行编码。这可以通过在HTTP URL中使用三元组编码/百分比编码将字符的二进制值替换为其十六进制数来实现:
book.php?category=Book%20Cover
对于您拥有的空间,历史上它甚至是一个特殊情况,您也可以用加号编码。
后一个问题通常由用户代理处理,但是HTML中的引号是必需的,否则值会被删除。
一般来说,将HTML中的属性值放在(双)引号内是很好的做法。所以我建议你们这么做
为什么不在编码前转换为UTF-8 ?
urlencode(utf8_encode($string));
看起来你缺少双引号
<a href="book.php?category=Book Cover">Book Cover</a>