PHP json_编码丢失我的UTF-8转义?

PHP json_编码丢失我的UTF-8转义?,php,utf-8,json,Php,Utf 8,Json,我有一个带有国际字符字符串的数组。 当我把它保存在数据库里的时候,我松开了反斜杠?为什么? $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

我有一个带有国际字符字符串的数组。
当我把它保存在数据库里的时候,我松开了反斜杠?为什么?

$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"]

您没有逃避数据库输入。永远逃脱

这里有一条路

$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));

谢谢Paul,也谢谢PDO和ADODb的建议,现在就阅读它们,干杯