You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

URL特殊字符编码还原问题:get_query_var获取路径的ä解码失败

解决URL编码字符的解码问题

嘿,我来帮你搞定这个编码问题!你遇到的%C3%A4其实是UTF-8字符的URL百分号编码,而utf8_decode()根本不是用来处理这种编码的,这就是为什么你用它没效果的原因。

为什么utf8_decode()没用?

utf8_decode()的作用是把UTF-8编码的字符串转换成ISO-8859-1(Latin-1)编码,而你当前拿到的%C3%A4是URL编码后的结果,不是直接的UTF-8字符串。用它处理反而会把解码后的UTF-8字符转成错误的Latin-1字符,导致乱码。

正确的解码方法

你需要用专门处理URL百分号编码的函数:urldecode()或者rawurldecode(),两者的区别仅在于对加号+的处理(urldecode会把加号转成空格,rawurldecode不会),你的场景里用哪个都可以。

示例代码:

$url = get_query_var('title2');
// 解码URL编码的字符串
$decoded_url = urldecode($url);
var_dump($decoded_url); // 输出结果:string(27) "500-Beställning"

如果用rawurldecode(),效果是一样的:

$decoded_url = rawurldecode($url);

这样就能正确得到包含ä的原始字符串啦!

内容的提问来源于stack exchange,提问作者mrfr

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 06:49:58