上网的时候,谁没复制粘贴过链接、代码或者配置信息呢?可有时候,一个不起眼的符号,就能让你折腾半天。别小看那些@、#、&、%之类的字符,用错了地方,轻则登录失败,重则系统报错。
URL 里的 & 写成 &&
很多人在拼接网址参数时,习惯性地把 & 写成 &&,觉得“多写一个更保险”。比如:
https://example.com/login?user=admin&&token=abc123
其实这会让服务器只识别第一个参数,第二个直接被忽略。正确写法是每个参数之间用单个 & 连接:
https://example.com/login?user=admin&token=abc123
把 % 当作普通百分号使用
在 URL 或配置文件中,% 是特殊转义符。比如你想表示“折扣80%”,写成 discount=80%,浏览器可能会报错,因为它以为你在写 UTF-8 编码(像 %E4%B8%AD 这种)。
正确的做法是把 % 编码为 %25:
discount=80%25
@ 符号在邮箱和 URL 中混用出问题
有些人在填写 API 地址时,把带账号密码的 URL 写成:
http://user:pass@192.168.1.1:8080/api
看起来没问题,但现在很多浏览器和工具默认禁用这种写法,容易被当成钓鱼链接。更稳妥的方式是用 token 或 Authorization 头传递凭证。
# 号后面的内容被当作文本锚点
你在调试接口时,如果 URL 带了 #,比如:
https://api.site.com/data#section1
你会发现,# 后面的部分根本不会发给服务器。因为浏览器认为这是页面内锚点,只在前端处理。想传参就得把 # 换成 ? 或者对 # 编码为 %23。
中文符号混入英文环境
最常见的是把英文冒号 : 错打成中文全角::,或者用了中文引号“”代替"。系统一看就懵了,直接报语法错误。
尤其是在写 JSON 配置时:
{“name”: “张三”}
看着像那么回事,实际运行就报错。必须确保所有符号都是半角英文:
{"name": "zhangsan"}
空格没编码,导致链接断裂
URL 里不能直接有空格。如果你写了个带空格的搜索词:
https://search.com?q=用户手册
结果可能变成只传了“用户”,后面断了。空格要替换成 %20 或用 +(在 query 参数中):
https://search.com?q=用户%20手册
这些符号问题,平时不起眼,一出事就卡住整个流程。下次复制链接或写配置,多瞄一眼符号,省得浪费时间查错。