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的建议,现在就阅读它们,干杯