PHP Url编码未正确编码

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是正确的编码ô...

Sha*_*ran 6

好吧,我得到了你期望得到的.你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)