我有一个问题,似乎找不到解决方案。我正试图用提供的工具从魔兽世界的军械库中提取数据,这很好:
<?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(is 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
(继续代码的其余部分)
URL只能包含ASCII字符的子集,不支持像"á"这样的字符
要在URL中包含这样一个非ASCII字符,您需要urlencode
它。
如果浏览器将URL显示为darkspear/Jímmeh/simple
,那么这只是浏览器对URL进行预处理以供显示。
在睡了一个好觉并做了更多的工作后,我发现它并不完全有效:(
问题仍然在于现在的事实,例如:
á变成了%E1,当然它是作为其整数工作的。但是这个链接对于令人惊叹的API来说仍然是无用的。但经过一番搜索,我终于找到了方法,如果你想得到这样一个链接,你必须这样做:
urlencode(utf8_encode($test));
这将使字符串为utf8,然后将其更改为url编码,从而得到我所需要的:)