PHP echo / mysql不能正确处理特殊字符

时间:2015-09-28 19:04:46

标签: php

我有一个JSON文件,可以从第三方网站远程访问。它包含具有特殊字符的字符串,例如:

"name":"StatTrak\u2122 FAMAS | Pulse","name":"\u2605 Butterfly Knife | Case Hardened",

但是,当我使用以下PHP代码回显这些值时:

$url = "https://www.example.com";

$json = file_get_contents($url);
$obj = json_decode($json);

$descriptions = $obj->rgDescriptions;
foreach ($descriptions as $key => $value) {
    echo htmlspecialchars($value->name);
    echo htmlspecialchars($value->name, ENT_QUOTES, 'UTF-8');
}

它将这些行打印为:

StatTrak™ FAMAS | Pulse★ Butterfly Knife | Case Hardened

如何防止这种情况?将这些值存储在MySQL表中时也会发生这种情况。

我也尝试了以下内容:

$enc = mb_detect_encoding($value->name, "UTF-8,ISO-8859-1");

echo (iconv($enc, "UTF-8", $value->name) . ",");

但结果是一样的。

1 个答案:

答案 0 :(得分:0)

htmlspecialchars编码设置为UTF-8。

echo htmlspecialchars($value->name, ENT_QUOTES, 'UTF-8');
相关问题