我正在尝试编码以下字符串: 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
是正确的编码ô
...
好吧,我正得到您所期望得到的。您mysqli_real_escape
是这里的罪魁祸首。去掉它。
另外,请使用Prepared Statements
,这样您就不必专注于转义和填充内容。
<?php
$name = 'Peôn';
echo $name = urlencode($name);
输出:
Pe%C3%B4n
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句