最近在微信開發中,遇到要使用php來post一個json數據的操作,使用的方法是先建立php數組,再使用json_encode函數轉化為json字符串。但發現中文會亂碼(其實是變成編碼)
原因在于json_encode會對中文以及鏈接中的斜杠等特殊字符進行轉義。于是考慮使用php自帶的urlencode函數先把字符串轉好,防止json_encode進行轉義操作,最后再使用urldecode還原,測試成功。
實例如下:
$data = array( "姓名" => "A5源碼", "博客" => "http://ilovetile.com" );echo json_encode($data);
以上代碼將會輸出:
{"/u59d3/u540d":"/u738b/u601d/u6377","/u535a/u5ba2":"http:/down.vevb.com"}
如果把代碼換成:
$data = array( urlencode("姓名") => urlencode("B5教程網"), urlencode("博客") => urlencode("http://ilovetile.com") );echo urldecode(json_encode($data));
則可以正常輸出中文:
{"姓名":"A5源碼","博客":"http:/down.vevb.com"}
新聞熱點
疑難解答