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