我从这样的网址抓取一些json数据: https://steamcommunity.com/id/itemdepot3/inventory/json/730/2
$json = json_decode(file_get_contents(
"https://steamcommunity.com/id/itemdepot3/inventory/json/730/2"),true);
然后我尝试打印每个项目的名称:
foreach($json["rgInventory"] as $item){
$cid = $item["classid"];
$iid = $item["instanceid"];
$name = $json["rgDescriptions"]["{$cid}_{$iid}"]["market_name"];
echo $name;
}
但应该包含a™的名字出现了这样的错误:
StatTrakâ„¢ Five-SeveN | Nightshade (Field-Tested)
我尝试过一堆愚蠢的正则表达式修复程序(因为这是我需要修复的唯一字符),但无济于事。我不知道我在这里处理什么样的编码,所有的搜索都干了。如何才能正确打印我的™符号?
答案 0 :(得分:2)
如上面的评论所述,您需要确保指定正确的输出编码。
问题源于你输出UTF-8字符的事实,但是你的网络浏览器试图将页面解码为单字节字符集(很可能是ISO-8859-1或Windows-1252)。
确保始终通过适当使用HTTP标头(在本例中为Content-Type: text/html; charset=utf-8
)或使用<meta>
标记来指定输出编码。