Vig*_*igs -1 php mysql sql function utf-8
我正在尝试编码以下字符串: Peôn
根据:http://meyerweb.com/eric/tools/dencoder/字符串应该包含在:Pe%C3%B4n
当我用urlencode($name)我得到Pe%F4n
SOOOO迷失了.
我试图以下列方式使用编码的字符串:
失败:
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);
Run Code Online (Sandbox Code Playgroud)
编辑:
$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;
}
Run Code Online (Sandbox Code Playgroud)
echo $q .OUPUTS: 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);
Run Code Online (Sandbox Code Playgroud)
OUTPUT:
Pe%C3%B4n
Run Code Online (Sandbox Code Playgroud)