PHP网址编码未正确编码

艾滋病

我正在尝试编码以下字符串: Peôn

根据:http ://meyerweb.com/eric/tools/dencoder/该字符串应为:Pe%C3%B4n

当我使用时,urlencode($name)我得到Pe%F4n

太丢人了。

我正在尝试通过以下方式使用编码后的字符串:

失败:

http://us.battle.net/api/wow/character/Kil%27jaeden/Pe%F4n?fields=statistics

作品:

http://us.battle.net/api/wow/character/Kil%27jaeden/Pe%C3%B4n?fields=statistics

mycode:

$name = mysqli_real_escape_string($connection, $_POST['name']);
$name = urlencode($name);

编辑:

$name = $_POST['name'];
$realm = mysqli_real_escape_string($connection, $_POST['realm']);
$locale = mysqli_real_escape_string($connection, $_POST['locale']);
$toon = query_blizz_toon($name, $realm, $locale);

function query_blizz_toon($name, $realm, $locale){  
    $realm = urlencode(stripslashes($realm));
    $name = urlencode($name);
    $q = 'http://'.$locale.'.battle.net/api/wow/character/'.$realm.'/'.$name.'?fields=statistics';
    echo $q;
    $character = @file_get_contents($q);
    $character = json_decode($character);
    return $character;
}

echo $q 输出: http://us.battle.net/api/wow/character/Kil%27jaeden/Pe%F4n?fields=statistics

即使没有转义,仍然会得到错误的编码...:/

编辑:

根据此网站:http : //www.degraeve.com/reference/urlencoding.php

%F4是正确的编码ô...

尚卡·达莫达兰(Shankar Damodaran)

好吧,我正得到您所期望得到的。mysqli_real_escape是这里的罪魁祸首。去掉它。

另外,请使用Prepared Statements,这样您就不必专注于转义和填充内容。

<?php
$name = 'Peôn';
echo $name = urlencode($name);

输出:

Pe%C3%B4n

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章