0
蒸気市場から価格を取得しようとしていますが、これはすべてうまく動作し、配列を返していますが、問題が1つあります。 CS:私の配列が表示されません 奇妙な文字が表示されます
などのStatTrakアイテムやナイフなどの項目がスター(★
またはどのようにバルブが「
\u2605
『を送信)または商標ロゴ(
™
またはどのようにバルブが』
\u2122
」を送信)のいずれかを持ってGOこれらの文字、それらが、この代わりに変換:
â StatTrak⢠Karambit | Damascus Steel (Field-Tested)
をしかし、それは次のようになります。
★ StatTrak™ Karambit | Damascus Steel (Field-Tested)
これは私が情報の取得方法です。勿論、ループでは
$url = "https://steamcommunity.com/market/search/render/?query=&start=0&count=99&&search_descriptions=0&sort_column=price&sort_dir=popular&appid=730&category_730_ItemSet%5B%5D=any&category_730_ProPlayer%5B%5D=any&category_730_StickerCapsule%5B%5D=any&category_730_TournamentTeam%5B%5D=any&category_730_Weapon%5B%5D=any";
$html = file_get_contents($url);
$html = json_decode($html, true);
$html = $html['results_html'];
$dom = new DOMDocument;
@$dom->loadHTML($html);
$xpath = new DOMXpath($dom);
$itemname = $xpath->query('//span[@id="result_' . $q . '_name"]');
$itemprice = $xpath->query('//*[@id="result_' . $q . '"]/div[1]/div[2]/span[1]/span[1]');
を、それは今は関係ないはず。 $q
の範囲は0〜99です。
コンテンツを適切な文字で取得するにはどうすればよいですか?
これは、Mojibakeの古典的なケースのようです。文字は1つのエンコーディングに格納され、別のエンコーディングを使用して表示されます。ページの文字エンコーディングが正しく設定されていることを確認してください。おそらくUTF-8を使うべきです。あなたのHTMLの '
'セクションで ''を使ってこれを行うことができます。 –@DaanWilmerあなたの反応をありがとう、次のようにして解決しました: '$ html = mb_convert_encoding($ html、 'HTML-ENTITIES'、 'UTF-8');' –