php json轉數組亂碼怎麼辦

PHPz
發布: 2023-04-27 16:50:47
原創
601 人瀏覽過

在進行php json轉數組操作時,常常會遇到亂碼問題。這個問題的根源是字符集的不一致。

Java、Python等語言的預設字元集是utf-8,而php的預設字元集是ISO-8859-1。因此,在處理json字串時,如果json字串的字元集是utf-8,而php的字元集是ISO-8859-1,那麼就會導致轉換出來的陣列亂碼。

下面我們就來看看如何解決這個問題。

一、指定json字串的字元集

當我們知道json字串的字元集時,可以透過指定字元集來解決問題。

範例程式碼:

$json_str = iconv('utf-8','ISO-8859-1',$json_str); //将json字符串的字符集从utf-8转换为ISO-8859-1
$arr = json_decode($json_str, true); //将json字符串转换成数组
登入後複製

二、更改php預設字元集

#當我們無法知道json字串的字元集時,或需要處理大量json字串時,可以更改php預設字元集。這樣,在處理任何json字串時,都不會出現亂碼問題了。

更改php預設字元集的方式是在php.ini檔案中修改。我們可以透過以下步驟來完成這個動作:

  1. 開啟php.ini檔案

#在終端機中輸入以下指令,開啟php.ini檔:

sudo vi /etc/php/7.3/apache2/php.ini
登入後複製
  1. 修改預設字元集

在php.ini檔案中,找到以下兩行,取消註解並將字元集修改為utf-8:

;default_charset = "iso-8859-1"
default_charset = "utf-8"
登入後複製
  1. 重新啟動Apache

儲存php.ini檔案後,需要重新啟動Apache才能讓變更生效:

sudo service apache2 restart
登入後複製
  1. 測試

更改php預設字元集後,我們可以測試一下是否能夠正確解析json字串。範例程式碼:

$arr = json_decode($json_str, true); //将json字符串转换成数组
登入後複製

總結

json轉數組亂碼是一個常見的問題,但也是一個易於解決的問題。我們可以透過指定json字串的字元集或更改php預設字元集來解決這個問題。無論哪種方式,都需要理解字符集的概念,以便正確地進行轉換。

以上是php json轉數組亂碼怎麼辦的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板