나는 전에 여러 번 물어 본 질문을 알고 있지만 내 문제에 대해 명확히해야한다고 생각합니다.PHP로 안드로이드 : MySQL에 utf-8 문자열 저장하기
JSON 인코딩 문자열을 PHP 스크립트로 보내는 Android 앱이 있습니다. 다음 코드는 데이터를 완전한 JSON 문자열로 저장합니다. 문제는 텍스트의 일부는 JSON 문자열에 포함 된 안드로이드 strings.xml의에서 가져온 것입니다
$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 문자열에 데이터를 저장하는 다른 기능도 있습니다) 그것은 utf-8로 인코딩됩니다. strings.xml 파일의 예로서 <item>Can\'t get there</item>
은 MySQL에 "Canu0027t get there"라는 이름으로 저장됩니다. 또한 "Wholesale & Retail"은 "Wholesale u0026 Retail"으로 저장됩니다.
또한 PHP에서 json_decode()
이 JSON 문자열에 utf-8로 인코딩되지 않은 문자로 인해 실패합니다. 다음 오류가 발생했습니다. 잘못 인코딩 된 UTF-8 문자가 잘못되었습니다.
이 모든 시나리오를 어떻게 처리 할 수 있습니까? 제발 도와주세요.
왜 json_decode()가 PHP에서 실패합니까? 잘못된 문자열이 표시되거나 오류 메시지가 나타 납니까? –
Canu0027t를 저장하더라도 거기에 도착하면 var a = "Canu0027t get there"와 같이 표시됩니다. 경고 (a); 당신은 볼 것이다 : Canu't는 거기에 도착한다 –