PHP json_encode теряет мой UTF-8 ускользает? - PullRequest
0 голосов
/ 12 ноября 2010

У меня есть массив со строками с международными символами.Когда я сохраняю это в базе данных, я теряю обратную косую черту?Почему?

$descr_arr = array("héééllo","world");
$js_encoded = json_encode($descr_arr);
print $js_encoded; // "[\"h\u00e9\u00e9\u00e9llo\",\"world\"]"

$sql_query = "UPDATE test_table SET description = '$js_encoded' WHERE id = 0";
$sql_res = mysql_query($sql_query);

// in the description field in the database I find:
// ["hu00e9u00e9u00e9llo","world"]

1 Ответ

2 голосов
/ 12 ноября 2010

Вы не избежали ввода вашей базы данных. Всегда убегай!

Вот один из способов

$sql_query = "UPDATE test_table SET description = '".
   mysql_real_escape_string($js_encoded).
   "' WHERE id = 0";

Еще лучше, используйте оболочку базы данных, такую ​​как PDO или ADODb, которая позаботится о побеге для вас. Это будет выглядеть примерно так:

$db->Execute("UPDATE test_table SET description =? where id=?",
     array($js_encoded, $id));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...