php json存mysql斜杠_MySQL 存储php中json_encode格式中文问题及解决
MySQL?存儲php中json_encode格式信息??,遇到中文時,?會變成一堆類似uxxxx信息.
1.?原因分析:
在存儲到數據庫時!MySQL?不會存儲?unicode?字符:
MySQL?僅支持從基本的多語種平面字符?(0×0000-0xFFFF)。請嘗試存儲一個同義詞相反:)
更新:?MySQL?5.5.3?上?(其中尚未?GA),?支持補充字符如果您使用?UTF8MB4?編碼。
json_encode中文的時候,會把每個中文字符encode成“\uxxxx”
而存進數據庫的時候,“\”被屏蔽了,直接變成”uxxxx”
2.?解決問題:
知道是什么原因就好解決問題了,你可以選擇其他存儲方式;
或者再對癥下藥進一步轉義”\”為“\\”,以保留”\”
我們的解決方案:
1.?避免json_encode將中文轉換unicode編碼.
PHP5.4版本,已經給Json新增了一個選項:?JSON_UNESCAPED_UNICODE。加上這個選項后,就不會自動把中文編碼了。
$test=?json_encode("深圳",?JSON_UNESCAPED_UNICODE);
2.?先將中文字段urlencode,json_encode后,再用urldecode,也可以保證中文不會被轉成unicode。
$test=urldecode(json_encode(array('brief'=>urlencode('簡介'),'title'=>urlencode(標題)));
3.?進一步轉義”\”為“\\”?避免unicode中文前’\'被mysql當成特殊字符去除
$str?=?json_encode('中文');
$test=?addslashes(?$str?);?或?$test=?mysql_escape_string(?$str?);
以上都可以直接插入mysql,問題解決
總結
以上是生活随笔為你收集整理的php json存mysql斜杠_MySQL 存储php中json_encode格式中文问题及解决的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: jsp mysql驱动程序_JSP通过
- 下一篇: thinkphp通过模型查询mysql_