我在使用 perl 时遇到了空格问题。我从数据库中获取信息并将它们用于查询字符串,但如果有空格,我将无法验证我的页面。
<a href="fish.cgi?fish=White Shark">White Shark</a>
有什么我可以做的吗?
将您的 URL 转换为URI对象,它将为您处理所有转义和规范化。它们也可以用作字符串。
use URI;
# Prints fish.cgi?fish=White%20Shark
print URI->new("fish.cgi?fish=White Shark");
我会推荐这个而不是单独转义 URI。一旦你有了一个 URI 对象,你就知道使用它是安全的。
您可以将链接中的空格替换为空格%20
的 URL 编码版本。您可能需要在发布后再次删除它,不太确定。
示例:www.google.ca/this site
将被编码为www.google.ca/this%20site
所以你的版本是fish.cgi?fish=White%20Shark
,这应该正确发布。