我有一个问题,我似乎无法找到解决方案。 我试图用提供的工具从魔兽世界军械库中提取数据,这很好用:
<?php
$toon = 'http://eu.battle.net/api/wow/character/(realm)/(character name)';
$data = file_get_contents($toon);
$obj = json_decode($data);?>
<img src="http://eu.battle.net/static-render/eu/<?php echo $obj->thumbnail; ?>"> </img><br />
<?php
echo "Name: " . $obj->name . "<br />";
echo "Level: " . $obj->level . "<br />";
echo "Image: " . $obj->thumbnail . "<br />";
?>
我试图检索的是thumnail,其余的名字/等级对我来说并不重要。 只有在名称开始使用特殊字符时才会出现问题:
á,â,等(http://www.utf8-chartable.de/)
问题或多或少是军械库api只允许像
这样的东西á=%C3%A1
â%c3%a2
这有点奇怪,因为默认页面只是将它们转换回普通字母。但Api并不支持它。
示例:
http://eu.battle.net/api/wow/character/darkspear/J%C3%ADmmeh(是api)
http://eu.battle.net/wow/en/character/darkspear/Jímmeh/simple(正常军械库页面)
我现在的问题是,有人可以帮我找出将á转换为十六进制代码的方法吗?
&charname (getting the information from some input field normal characters)
**Converting the &charname with special characters to the charname with hex code's)**
&realmname = http://eu.battle.net/api/wow/character/(realm name)
&toon = &realmname.&charname
(继续其余代码)
答案 0 :(得分:1)
网址只能包含ASCII字符的子集,它们不支持“á”等字符
要在URL中包含此类非ASCII字符,您需要urlencode
它。
如果浏览器将网址显示为darkspear/Jímmeh/simple
,那就是浏览器美化网址以进行展示。
答案 1 :(得分:1)
经过一夜好眠和一些工作后,我发现它并没有真正的工作:(
问题仍然在于现在例如:
á成为%E1,其作为其意图的作品。但是这个链接对于哇API仍然没用。 但经过一番搜索,我终于找到了如果你想获得这样一个链接的方法,你将不得不这样做:
urlencode(utf8_encode($test));
这将使字符串utf8然后将其更改为url编码,从而导致我需要的东西:)