php物件轉json中文亂碼
在進行 Web 開發時,經常會用到 JSON
,將物件轉換為 JSON
數據,並透過 AJAX
進行非同步傳輸。然而在使用 PHP 後台進行 JSON
格式化輸出時,可能會遇到物件轉換為 JSON
格式後中文亂碼的情況。本文將介紹如何解決這個問題。
問題描述
在PHP 程式碼中,我們使用json_encode()
函數將物件轉換成JSON 格式的字串,然後透過echo
輸出。但是,當JSON 中包含中文時,就會出現亂碼的情況,如下圖所示:
#清晰的中文被轉換為了亂碼,這對用戶和開發者都是不友善的。接下來,我們將介紹三種解決方法。
解決方法
方法一:手動將中文編碼
在json_encode()
函數前面加上json_encode()-> mb_convert_encoding()
,將中文手動編碼成utf-8。
範例程式碼如下:
<?php $arr = [ 'name' => '张三', 'age' => 18, 'gender' => '男' ]; echo mb_convert_encoding(json_encode($arr, JSON_UNESCAPED_UNICODE), 'UTF-8'); ?>
加入這段程式碼後,輸出的字串中的中文就會被正確地轉換為 utf-8 編碼,而不是亂碼。
方法二:設定json_encode()
的參數
#在json_encode()
函數中加入JSON_UNESCAPED_UNICODE
# 參數,告訴json_encode()
函數不要將中文編碼成Unicode,直接保留中文即可。
範例程式碼如下:
<?php $arr = [ 'name' => '张三', 'age' => 18, 'gender' => '男' ]; echo json_encode($arr, JSON_UNESCAPED_UNICODE); ?>
加入這個參數後,輸出的 JSON 中的中文就會被正確輸出,而不是亂碼。
方法三:修改 PHP 核心設定
在 PHP 核心設定中,有一個參數 default_charset
,它表示輸出一些文字時使用的預設字元編碼。如果該參數被設定為 UTF-8,那麼 JSON 輸出時中文也會被正確地編碼。
範例程式碼如下:
<?php ini_set('default_charset', 'utf-8'); $arr = [ 'name' => '张三', 'age' => 18, 'gender' => '男' ]; echo json_encode($arr); ?>
將這段程式碼放在需要輸出 JSON 的腳本中,就可以保證 JSON 中的中文不會出現亂碼了。
結束語
在進行 Web 開發時,使用 JSON 格式進行資料傳輸是非常常見的。在 PHP 中,使用 json_encode()
函數將物件序列化成 JSON 格式的字串時,可能會出現中文亂碼的情況。本文介紹了三種解決方法:手動將中文編碼、設定 json_encode()
的參數和修改 PHP 核心設定中的 default_charset
參數。這些方法都能夠有效解決 JSON 中文亂碼的問題,具體的使用可根據實際情況選擇。
以上是php物件轉json中文亂碼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)