1. 程式人生 > >php的json_encode()中文編碼問題

php的json_encode()中文編碼問題

今天,看東西,突然看到之前寫的程式碼,得記錄下來,不然又遺忘了!

php 5.4.0之前,json_encode() 是不支援 中文編碼的

5.4.0之後,json_encode()新增了 JSON_UNESCAPED_UNICODE 選項,支援了中文,我們得寫一個相容函式:

function ijson_encode($value, $options = 0) {
	if (empty($value)) {
		return false;
	}
	if (version_compare(PHP_VERSION, '5.4.0', '<') && $options == JSON_UNESCAPED_UNICODE) {
		$json_str = preg_replace("#\\\u([0-9a-f]{4})#ie", "iconv('UCS-2', 'UTF-8', pack('H4', '\\1'))", json_encode($value));
	} else {
		$json_str = json_encode($value, $options);
	}
	return addcslashes($json_str, "\\\'\"");
}
光上面還不行,得注意 JSON_UNESCAPED_UNICODE,這個常量,在<5.4.0應該是沒有的,我們得定義。
/*
 * 相容 <5.4.0 版本,json_encode() 中文轉為unicode編碼問題。新增 JSON_UNESCAPED_UNICODE 常量
 */
if (!defined('JSON_UNESCAPED_UNICODE')) {
	define('JSON_UNESCAPED_UNICODE', 256);<span style="white-space:pre">	</span>// php定義該常量為256
}




相關推薦

.Net Core中文編碼問題整理

figure ide 添加 run 編碼 div 方法 http read 1、添加System.Text.Encoding.CodePages包(Install-Package System.Text.Encoding.CodePages) 2、控制臺應用程序在Main方

Apache服務器URL訪問中文編碼設置

img nco eva .com usr author col div load 在/usr/local/apache/conf/httpd.conf文件末位添加以下信息: 1 #add chinese url code 2 LoadModule encoding

如何讓sublime text 2/3支持中文編碼

pat 編輯 install pri boa 安裝 source 亂碼 格式 由於每個編輯器默認編碼格式不一樣,所以大致在一些編輯器中編輯的代碼註釋在另外一些編輯器中出現亂碼。在sourceinsight裏面編輯的中文在sublime text3中出現亂碼,所以

解決全站字符亂碼(POST和GET中文編碼問題)

{} tomcat ont throws turn nco cat doget pro 1 說明 亂碼問題: 獲取請求參數中的亂碼問題; POST請求:request.setCharacterEncoding(“utf-8”); GET請求:new String(r

windows修改PowerShell(命令提示符)默認中文編碼方式

提示 lec user dex ole big gb2312 ons containe 如果以下方法都沒有作用的話,可以直接在代碼中調用<stdlib.h>中的system("mode con cp select=65001")或者是system("chcp 6

Python的解釋器和中文編碼

com ges 尋找 notepad 文件的 目錄 運行 寫法 -1 第一行 #!/usr/bin/env python 目的是指出用什麽可執行程序去運行代碼。 有兩種寫法 1、#!/usr/bin/python 調用/usr/bin下的python解釋器,去運行代碼。 這

Python 中文編碼

輸出結果 開頭 ref 文件 找到 編輯器 sci .cn 文件中 Python 中文編碼 前面章節中我們已經學會了如何用 Python 輸出 "Hello, World!",英文沒有問題,但是如果你輸出中文字符"你好,世界"就有可能會碰到中文編碼問題。 Python 文件

中文編碼及萬國碼

-- 1.0 gbk 中文編碼 占用 nic post 所有 字節 字符編碼支持中文的第一張表就叫 GB2312 1980 GB2312 6700+1995 GBK1.0 200002000 GB18030 27000 big5 臺灣unicode 萬國碼 支持所有國家和

CentOS中文編碼怎麽設置?

不能 entos 表示 elf 電腦 utf-8 系統 margin span 1.查看當前系統語言 登陸linux系統打開操作終端之後,輸入 echo $LANG可以查看當前使用的系統語言。如 2.查看安裝的語言包 查看是否有中文語言包可以在終端輸入 loc

mysql之全球化和本地化:字符集、校對集、中文編碼問題

語法 必知必會 gin 中文編碼 itl 什麽是 存儲 默認 order 本文內容: 什麽是字符集?什麽是校對集? 查看字符集和校對集 設置字符集和校對集 mysql中的中文數據問題 首發日期:2018-04-19 什麽是字符集?什麽是校對集?

IDA中文編碼設置

IDA文件目錄:cfg/ida.cfg註釋掉(cp866 version中的AsciiStringChars)// (cp866 version)//AsciiStringChars = 取消註釋(full version中的AsciiStringChars)// (full version)AsciiStr

dos中文編碼問題

dos寫個bat腳本,發現不能顯示中文 輸入 chcp 65001即可 dos中文編碼問題

CsQuery中文編碼亂碼問題

top 顯示 exception 編碼 錯誤 sage encode SQ tom 一、問題描述 InnerHTML 中文顯示為&#1052;&#1086;&#1076;&#1077;&#1083;&#1100; 二、解決方法

Python學習---JSON補充內容[中文編碼 + dumps解析]

src tom lba 占位符 display https one encoder none JSON補充內容[微信解決中文亂碼,接上]import json # 英文顯示 dic = {"hello": "world"} str = json.dumps(dic) #

git 初始化 中文編碼、自動換行

顯示 png 自動換行 conf control color windows 服務器 16px 解決中文編碼: git config --global core.quotepath false git config --global gui.encoding utf-8 g

C# HttpRequest 中文編碼問題

nco 中文編碼 嘗試 webex 獲得 utility byte adt 字節數 GET方法: public string DoWebRequest(string url) { HttpWebResponse webRespon

python 打印Linux中文編碼字符

style -c color linux中 linux中文 服務器 編碼 pytho span 2018-10-12 12:02:15 星期五 python -c "print ‘\346\234\215\345\212\241\345\231\250\346\217

Python傳送Http請求時,提交中文或者符號中文編碼問題的解決方法

前言 博主最近在用python3比較強大的Django開發web的時候,發現一些url的編碼問題,在瀏覽器提交請求api時,如果url中包含漢子,就會被自動編碼掉。呈現的結果是 ==> %xx%xx%xx。如果出現3個百分號為一個原字元則為utf8編碼,如果2個百分號則為gb2312編碼。

Python學習筆記:中文編碼和基礎語法

Python 中文編碼 Python中預設的編碼格式是 ASCII 格式,在沒修改編碼格式時無法正確列印漢字,所以在讀取中文時會報錯。 解決方法為只要在檔案開頭加入 # -- coding: UTF-8 -- 或者 #coding=utf-8 就行了(注意:#coding=utf-8

paip 日誌中文編碼原理問題本質解決python

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!