我知道我在问一个以前被问过很多次的问题,但我觉得我需要澄清我的问题。
我有一个将 JSON 编码字符串发送到 PHP 脚本的 Android 应用程序。然后,以下代码将数据保存为完整的 JSON 字符串。(还有其他功能可以将数据正确保存到多个字段,而不仅仅是一个 JSON 字符串)
$json_complete = $_POST['questionnaire'];
$q = json_decode($json_complete, true);
//save complete json string to database
$query_upload = "INSERT INTO questions_json (q_id, json) VALUES('".mysql_real_escape_string($q[qID])."', '$json_complete') ON DUPLICATE KEY UPDATE json = VALUES(json)";
$result = mysql_query($query_upload) or errorReport("Error in query: $query_upload. ".mysql_error());
if (!$result)
errorReport($result);
问题是 JSON 字符串中包含的一些文本取自 Android 中以 utf-8 编码的 strings.xml。作为示例,strings.xml 文件<item>Can\'t get there</item>
在 MySQL 中保存为“Canu0027t get there”。还将“批发和零售”另存为“批发 u0026 零售”。
json_decode()
由于 JSON 字符串中的非 utf-8 编码字符,我在 php 中也失败了。收到以下错误:格式错误的 UTF-8 字符,可能编码不正确。
我该如何处理所有这些情况?请提供任何帮助。