由於檔案編碼問題造成json_encode 中文變成null的解決辦法
在使用json_encode時,如果檔案不是UTF-8格式並且陣列中存在中文,該中文會輸出為null
示例程式碼:
<?php
$brand = array('id'=>'123456','name'=>'中國人');
var_dump(json_encode($brand));
?>
輸出結果:
string(27) "{"id":"123456","name":null}"
使用下面這個函式解決了此問題:
<?php function gbk_to_utf8($data){ if(is_array($data)){ return array_map('gbk_to_utf8', $data); } return iconv('gbk','utf-8',$data); } ?>
示例程式碼:
<?php
$brand = array('id'=>'123456','name'=>'聯想');
var_dump(json_encode(gbk2utf8($brand)));
?>
在json_encode之前做一下gbk2utf8轉碼,此時輸出正確結果:
string(37) "{"id":"123456","name":"\u8054\u60f3"}"
\u8054\u60f3 為“聯想”的unicode碼,瀏覽器會自動轉換成文字。
注: php的json_encode函式只支援utf-8編碼,
若環境不支援的函式mb_convert_encoding ( string$str
, string
$to_encoding
[, mixed
$from_encoding
= mb_internal_encoding() ] ) ) ,
需檢查是否開啟了extension=php_mbstring.so (linux下如果缺少這個模組要先用rpm裝好)
php的另一個編碼轉換函式iconv ( string
iconv ( string
$from_charset
, string
$to_charset
, string
$str
) ) 經常和mb_convert_encoding互換使用
相關推薦
由於檔案編碼問題造成json_encode 中文變成null的解決辦法
在使用json_encode時,如果檔案不是UTF-8格式並且陣列中存在中文,該中文會輸出為null 示例程式碼: <?php $brand = array('id'=>'123456','name'=>'中國人'); var_dump(json_
跨平臺檔案編碼和換行問題的解決辦法
使用windows編輯,會有回車問題和編碼問題。換行問題: Win 換行 \r\n Linux 換行 \n Mac 換行 \r 。很多工具在這方面不相容,比如Shell。編碼問題: Linux 預設使用utf-8 (without BOM),Win 預設GBK。 linux下直接開啟win文件
Java插入中文到資料庫中文變成問號???解決辦法
在url後面新增引數:url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8 DriverManager.getConnection("jdbc:mysql://localhost:3306/
關於json_encode中文為null的情況
記得以前在網上遇到過別人的求助帖,說是json_encode後發現json欄位有null的情況,那時自己也沒遇到過,就用一個笨的方法解決。 $arr = array('name'=>'牛人','hobby' => 'c好ode'); forea
JavaWeb request獲取引數造成的中文亂碼問題解決方法
一、亂碼原因 當我們使用request物件,傳送請求時,會對你要獲取的引數進行編碼。在此過程中使用的編碼方式是ISO8859-1的編碼方式。而這種編碼方式是不支援中文的,所以會造成亂碼。 二、解決方法 首先介紹通用的解決方法,對於get和post提交方式都適用
利用FTPClient上傳的檔案中中文名字亂碼解決辦法
新增下面這一段: if (FTPReply.isPositiveCompletion(ftpClient.sendCommand( "OPTS UTF8", "ON"))) {// 開啟伺服器對UTF-8的支援,如果伺服器支援就用UTF-8編碼,否則就使用本地編碼(GBK)
IDEA國際化檔案中文亂碼的解決辦法
如果你是使用IDEA在進行開發,並且用到了國際化檔案,可能會出現中文顯示亂碼的情況,如下圖所示 這是由於我們沒有對IDEA進行相應的配置造成的,我們點選File------>"Settings...",如下圖所示。 在彈出的對話方塊中的搜尋
從CSV檔案匯入Hive出現中文亂碼問題解決
關於HIVE中文亂碼問題的解決辦法,網上有很多帖子,然而很多都是基於LINUX終端顯示字元的修改,其實上對於一些條件下的HIVE中文亂碼問題是無法解決的,如從CSV檔案匯入到HIVE中出現的中文亂碼問題。 大家都知道,HIVE原生的字元編碼是採用UTF-8方式的,這是支援
用java程式碼寫xml檔案時,出現中文亂碼的解決方法
phoneElement.addAttribute("name", "家庭電話");emailElement.setText("[email protected]");try {/*** 特別注意:* * java中有Writer類繼承下來的子類沒有提供編碼格式處理,所以dom4j也無法歲輸出的
Java插入中文到資料庫中文變成問號解決
之所以會出現亂碼,就是編碼方式不一致導致的 我們應該首先確定 1. eclipse和mysql資料庫中的編碼方式是否一致 2. 在連結資料時,有沒有在url裡面加上characterEncoding=utf8,也就是下圖這樣
SQLServer 2008 匯入txt檔案,中文亂碼問題解決辦法
工作需要需要將檔案匯入,對其他表進行操作,但是匯入後發現中文全都亂碼了,現在將匯入步驟及問題解決辦法總結如下: 準備好資料庫和要匯入的.txt檔案 第一步: 第二步: 第三步:依次進入下一步,直到如下所示: 如下圖設定欄位格式: 總之遇到漢字亂碼問題,就設定編碼格式
SpringCloud 上傳檔案,經過Zuul,中文檔名亂碼解決辦法
網上比較常見的解決方案是在uri前加/zuul 使用zuul的servlet繞開springmvc來解決上傳檔案亂碼問題 比如:原來你上傳檔案的路徑是/api/file/upload, 則你可以通過uri /zuul/api/file/upload來呼叫介面上傳檔案
資料庫xml配置檔案無法輸入&導致中文亂碼的解決方案
我在進行c3p0資料庫連線池配置的時候,由於資料庫採用主從庫的設計(一個負責讀,一個負責寫),所以我這裡就需要兩個配置項,但是寫兩個properties又顯得很多餘,於是就採用了xml配置,通過<named-config name="xxx">來區分
Zabbix 改中文後亂碼解決辦法
zabbix 亂碼解決方法:將windows中的字體,替換zabbix PHP 中的字體。1. 打開 windows 控制面板——》字體——》如選擇 “黑體”——》上傳到Linux中fonts目錄下(rz命令)2. 將名字改為小寫 “simhei.ttf”3. 原字體文件備份mv /var/www/html/
PHP 獲取JSON json_decode返回NULL解決辦法
單引號 .com 獲取json 原來 json數據 頁面 替換 解決辦法如下 對象 在用json_decode對JSON格式的字符串進行解碼時竟然為空,頁面空白啊,整半天檢查這裏檢查那裏,問同事都沒用。 今天必應搜索了下,問題解決了,原來是有BOM頭輸出,大蝦的解決辦法如下
resin後臺輸出中文亂碼的解決辦法!
中文 Coding https -o 出現 blog XML bsp sam resin後臺輸出中文亂碼的解決辦法! 學習了:https://blog.csdn.net/kobeguang/article/details/34116429 編輯conf/resin.con
字段更改造成ogg進程停止解決辦法
kafka ogg 收到開發人員的變更郵件申請,需要在某個表增加字段,由於我們的環境DDL是沒有開啟的。用的消息中間件Kafka做傳輸消費,應用到目標庫。由於緊急變更,先做字段變更吧。 變更完成後,查看ogg狀態;[oracle@bapdb1 ggs12]$ ./ggsci Oracle Golden
SpringBoot JPA MySQL 遇到中文亂碼的解決辦法
轉載於:https://blog.csdn.net/sanpic/article/details/79344562 在SpringBoot JPA中使用MySQL時, 資料庫的值為中文亂碼, 需要如下兩個方面的設定, 1. 資料庫的編碼為UTF-8, 或者GB2312 也可以.
Azure .net WebAPP的js/css檔案過大導致訪問慢的解決辦法
https://docs.azure.cn/zh-cn/articles/azure-operations-guide/app-service-web/aog-app-service-web-qa-js-or-css-file-too-large-cause-slower-access &nbs
win10下使用vscode除錯python輸出中文亂碼的解決辦法
今天在vscode中除錯一個python指令碼時發現中文亂碼了,折騰了好一會兒才找到原因,記錄一下。 很簡單的一句程式碼測試一下: # -*- coding: utf-8 -*- print('亂碼不?') 檔案編碼設定的也是utf-8,但是除錯就是亂碼,網上