无法解码GET参数

时间:2019-07-30 15:25:12

标签: php url

我有一个简单的`url,它传递两个参数。名称和手机。但是当我使用特殊字符时,无法解码该参数。看来??而不是字符。

我已经尝试使用urldecode($_GET['name']rawurldecodehtml_entity_decodeutf8_decode,但是这些都不起作用。

我在HTML中有一个utf-8元标记,并且我还尝试将其作为标头传递到php内,但这没用。

代码是这样的

<?php echo $_GET['name']; ?>

2 个答案:

答案 0 :(得分:2)

您只需使用正确的功能,即utf8_encode

<?php echo utf8_encode($_GET['name']); ?>

输出:

Consultório

函数utf8_encode

  

此函数将字符串数据从ISO-8859-1编码转换为   UTF-8。

请参阅文档here

答案 1 :(得分:0)

name=Consult%F3rio

这是Consultório网络早期的良好旧ISO-8859-1编码。如果解码后的版本显示不正确,则很可能您的应用程序根本没有使用ISO-8859-1,因此在此使用它也没有任何好处。如果您的应用使用的是UTF-8,最简单的解决方案是完全切换到UTF-8:

Consult%C3%B3rio

基本上,这是任何内置PHP函数在馈入UTF-8数据时所得到的,因为它们在字节级别工作:

var_dump(rawurlencode('Consultório')); // string(16) "Consult%C3%B3rio"

如果这恰好是您无法控制的第三方数据,请检查Martin's answer