目次
参数
返回值
ホームページ バックエンド開発 PHPの問題 php json_encodeの中国語文字化けコードを解決する方法

php json_encodeの中国語文字化けコードを解決する方法

Aug 15, 2020 am 09:18 AM
php

php encode中文乱码的解决办法:首先打开相应的PHP文件;然后使用正则语句“preg_replace("#\\\u([0-9a-f]{4})#ie","iconv('UCS-2BE', 'UTF-8'...)”将编码替换成中文即可。

php json_encodeの中国語文字化けコードを解決する方法

推荐:《PHP视频教程

本文列举3个方法,实现json_encode()后的string显示中文问题。

做接口时不需要,但存log时帮了大忙了。

在贴代码前,必须贴上官方param和return,链接:http://php.net/manual/zh/function.json-encode.php 

参数

  • value
  • 待编码的 value ,除了resource 类型之外,可以为任何数据类型

    该函数只能接受 UTF-8 编码的数据

  • options
  • 由以下常量组成的二进制掩码: JSON_HEX_QUOTJSON_HEX_TAGJSON_HEX_AMPJSON_HEX_APOS,JSON_NUMERIC_CHECKJSON_PRETTY_PRINTJSON_UNESCAPED_SLASHESJSON_FORCE_OBJECT,JSON_UNESCAPED_UNICODE.

返回值

编码成功则返回一个以 JSON 形式表示的 string 或者在失败时返回 FALSE 

<?php
// json_encode() 保持中文方法详解

$arr['city'] = '北京';
$arr['name'] = 'weilong';

// 直接输出
// Res: {"city":"\u5317\u4eac","name":"weilong"}
echo json_encode($arr), "\n";

#### 1. 加参数,PHP版本>=5.4
// Res: {"city":"北京","name":"weilong"}
echo json_encode($arr, JSON_UNESCAPED_UNICODE), "\n";  // php >= 5.4

#### 2. 正则替换,json_encode后,正则将编码替换成中文
// Res: {"city":"北京","name":"weilong"}
echo preg_replace("#\\\u([0-9a-f]{4})#ie", "iconv('UCS-2BE', 'UTF-8', pack('H4', '\\1'))", json_encode($arr)), "\n";    // PHP 5.5 /e修饰符被弃用
echo preg_replace_callback("/\\\u([0-9a-f]{4})/i", function($match) {    // php >= 5.3 都可以
        return json_decode("\"{$match[0]}\"", true);
    }, json_encode($arr)), "\n";

#### 3. urldecode()、urlencode()函数,不推荐
// Res1: null, Res2: {"city":"北京","name":"weilong"}
echo urldecode(json_encode(urlencode($arr))), "\n";
$arr['city'] = urlencode($arr['city']);  // urlencode()参数必须是string
echo urldecode(json_encode($arr)), "\n";


// 另外注意json_decode()参数区别。
$arr['city'] = '北京';
$arr['name'] = 'weilong';
$str = json_encode($arr);
$str2 = json_decode($str);
$str3 = json_decode($str, true);

print_r($str2); // object
/* Res:
stdClass Object
(
    [city] => 北京
    [name] => weilong
) */

print_r($str3); // array
/* Res:
Array
(
    [city] => 北京
    [name] => weilong
)
*/
ログイン後にコピー

 

 

 

 

以上がphp json_encodeの中国語文字化けコードを解決する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットな記事タグ

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Dec 24, 2024 pm 04:42 PM

Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド

CakePHP の日付と時刻 CakePHP の日付と時刻 Sep 10, 2024 pm 05:27 PM

CakePHP の日付と時刻

CakePHP プロジェクトの構成 CakePHP プロジェクトの構成 Sep 10, 2024 pm 05:25 PM

CakePHP プロジェクトの構成

CakePHP ファイルのアップロード CakePHP ファイルのアップロード Sep 10, 2024 pm 05:27 PM

CakePHP ファイルのアップロード

CakePHP ルーティング CakePHP ルーティング Sep 10, 2024 pm 05:25 PM

CakePHP ルーティング

CakePHP について話し合う CakePHP について話し合う Sep 10, 2024 pm 05:28 PM

CakePHP について話し合う

PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 Dec 20, 2024 am 11:31 AM

PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法

CakePHP クイックガイド CakePHP クイックガイド Sep 10, 2024 pm 05:27 PM

CakePHP クイックガイド

See all articles