我试图将json转换为xml字符串,我必须将其存储在mysql数据库中。由于json中的特殊字符,这不起作用。
正如您在示例代码中看到的,我找到了一种在浏览器中查看精细字符串的方法。
<?php
// example response
$json = '{"examples":"„Plötzlich“ los – und (†30) Wird’s H&M"}';
// decode ...
$jsonArray = json_decode($json, true);
// ... to convert it
$xmlData = '<?xml version="1.0" encoding="utf-8"?><item>';
$xmlData .= iconv('UTF-8', 'Windows-1252', $jsonArray['examples']);
$xmlData .= '</item>';
//echo ('without encoding: ' . $jsonArray['examples'] . ' ... without encoding: ' . iconv('UTF-8', 'Windows-1252', $jsonArray['examples']));
echo($xmlData);
/*
* with the first echo the xml string looks like
* <?xml version="1.0" encoding="utf-8"?><item>„Plötzlich“ los – und (†30) Wird’s H&M</item>
*
* without the first echo it looks like
* <?xml version="1.0" encoding="utf-8"?><item>�Pl�tzlich� los � und (�30) Wird�s H&M</item><item>„Plötzlich“ los – und (†30) Wird’s H&M</item>
*/
?>
但是尝试将该字符串写入数据库将在第一个停止。
我的错在哪里?如何保留特殊字符?
答案 0 :(得分:0)
我找到了解决方案......它只是json_decode中的一个附加选项:
$jsonArray = json_decode($json, true, JSON_UNESCAPED_UNICODE);