ホームページ バックエンド開発 PHPチュートリアル php中json_encode UTF-8中文乱码的更好解决方法_php技巧

php中json_encode UTF-8中文乱码的更好解决方法_php技巧

May 16, 2016 pm 08:35 PM
json_encode utf-8 中国語文字化け

最近在接口代码当中用到过json_encode,在网上找到说json_encode编码设置为UTF-8中文就不会乱码,经验证这办法确实是有效果的,但是不知道为什么,代码在用过一段时间之后就不太管用了。以下是自己的解决json_encode的办法。有更好的方法请分享出来吧!

第一种:

这种简单的做一个代码转换,urlcode之后再返回所需数组

我代码这样就足够了。

代码如下 复制代码

public static function encodeOperations ($array)

{

foreach ((array)$array as $key => $value) {

if (is_array($value)) {

encodeOperations($array[$key]);

} else {

$array[$key] = urlencode(mb_convert_encoding($value,'UTF-8','GBK'));

}

}

return $array;

}
ログイン後にコピー

第二种:

这种是在网上看到的,然后就是有评论说会出现无限循环的问题,但是这显然很全面的,然后我测试之后也确实有,贴这里仅供参考

代码如下

/**************************************************************

*

* 使用特定function对数组中所有元素做处理

* @param string &$array 要处理的字符串

* @param string $tocode 编码后

* @param string $oldcode 编码前

* @param string $function 要执行的函数

* @return boolean $apply_to_keys_also 是否也应用到key上

* @return array $array 是否也应用到key上

* @access public

*

*************************************************************/

function encodeOperations (&$array, $function, $tocode=false,$oldcode=false,$apply_to_keys_also = false)

{

foreach ($array as $key => $value) {
(www.jb51.net)
if (is_array($value)) {

encodeOperations($array[$key], $function, $apply_to_keys_also);

} else {

if($tocode&&$oldcode) {

if(function_exists(mb_convert_encoding)) {

$value = mb_convert_encoding($value,$tocode,$oldcode);

}else{

return "error";

}

}

$array[$key] = $function($value);

}


if ($apply_to_keys_also && is_string($key)) {

$new_key = $function($key);

if ($new_key != $key) {

$array[$new_key] = $array[$key];

unset($array[$key]);

}

}

}

return $array;

}


/****from:http://www.jb51.net/phper/31/66729.htm**********************************************************

*

* 将数组转换为JSON字符串(兼容中文)

* @param array $array 要转换的数组

* @return string 转换得到的json字符串

* @access public

*

*************************************************************/

function JSON($array) {

arrayRecursive($array, 'urlencode', true);

$json = json_encode($array);

return urldecode($json);

}
ログイン後にコピー

对中文返回是null空的话我们需要进行字符转换成uft8或者先使用urlencode进行编译呼。

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

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

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

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

PHP Dompdfの中国語文字化け問題を解決する方法 PHP Dompdfの中国語文字化け問題を解決する方法 Mar 05, 2024 pm 03:45 PM

PHPDompdf の中国語文字化け問題を解決する方法 PHPDompdf は、HTML 文書を PDF ファイルに変換するツールで、強力で使いやすいです。ただし、中国語のコンテンツを処理すると、中国語の文字化けの問題が発生することがあります。この記事では、PHPDompdf の中国語文字化け問題を解決するいくつかの方法と具体的なコード例を紹介します。 1. フォント ファイルを使用して中国語コンテンツを処理する場合、よくある問題は、Dompdf がデフォルトで中国語コンテンツをサポートしていないことです。

PyCharmの中国語文字化け問題の究極の解決策 PyCharmの中国語文字化け問題の究極の解決策 Jan 27, 2024 am 08:00 AM

PyCharm の中国語文字化けの問題を解決する究極の方法には、特定のコード例が必要です。はじめに: PyCharm は、一般的に使用される Python 統合開発環境 (IDE) として、強力な機能とフレンドリーなユーザー インターフェイスを備えており、多くの人に愛され、使用されています。開発者の大多数。ただし、PyCharm が中国語の文字を処理すると、文字化けが発生する場合があり、開発やデバッグで特定の問題が発生します。この記事では、PyCharmの中国語文字化け問題の解決方法と具体的なコード例を紹介します。 1. プロジェクトをセットアップする

MySQL インストールにおける中国語の文字化けの一般的な原因と解決策 MySQL インストールにおける中国語の文字化けの一般的な原因と解決策 Mar 02, 2024 am 09:00 AM

MySQL インストール時に中国語が文字化けする一般的な原因と解決策 MySQL は一般的に使用されるリレーショナル データベース管理システムですが、使用中に中国語の文字化けの問題が発生し、開発者やシステム管理者を悩ませることがあります。中国語の文字化けの問題は、主に文字セットの設定が間違っていることや、データベースサーバーとクライアントの間で文字セットが一致していないことが原因で発生します。この記事では、MySQL インストールにおける中国語の文字化けの一般的な原因と解決策を詳しく紹介し、誰もがこの問題をよりよく解決できるようにします。 1. よくある理由: 文字セットの設定

ajaxで中国語の文字化けが送信された場合の対処方法 ajaxで中国語の文字化けが送信された場合の対処方法 Nov 15, 2023 am 10:42 AM

ajax で中国語の文字化けを送信する場合の解決策: 1. 統一されたエンコード方式を設定する; 2. サーバー側のエンコード; 3. クライアント側のデコード; 4. HTTP 応答ヘッダーの設定; 5. JSON 形式を使用する。詳細な導入: 1. 統一されたエンコード方式を設定して、サーバーとクライアントが同じエンコード方式を使用するようにします。通常の状況では、UTF-8 は複数の言語と文字セットをサポートできるため、一般的に使用されるエンコード方式です。 2 、サーバー側のエンコード: サーバー側で、中国語データが正しいエンコード方法でエンコードされてからクライアントなどに渡されることを確認します。

PHPのWebページに中国語の文字化けがある場合はどうすればよいですか?完全なソリューション PHPのWebページに中国語の文字化けがある場合はどうすればよいですか?完全なソリューション Mar 26, 2024 pm 03:27 PM

PHP Webページの中国語文字化け問題は、Webページ表示時に中国語の文字が文字化けして表示される問題で、エンコーディングの不一致や文字セットが設定されていないことが原因で発生することが多いです。 PHP Web ページの中国語文字化けの問題を解決するには、さまざまな側面から始める必要があります。以下に、一般的な解決策と具体的なコード例をいくつか示します。 PHP ファイルのエンコードを設定する: まず、PHP ファイル自体のエンコードが UTF-8 であることを確認します。エディタで保存するときに UTF-8 エンコードを設定するか、PHP ファイルのヘッダーに次のコードを追加して設定することができますエンコーディング: &l

Linuxシステムで中国語が文字化けする問題を解決する方法 Linuxシステムで中国語が文字化けする問題を解決する方法 Feb 19, 2024 am 09:22 AM

Linux の中国語文字化けの問題は、多くの中国人ユーザーが Linux システムを使用するときによく遭遇する問題です。中国語の文字化けの主な原因は、Linux システムで使用されるデフォルトの文字エンコーディングが UTF-8 であることですが、一部のソフトウェアやアプリケーションが UTF-8 エンコーディングと互換性がないため、中国語の文字が正しく表示されないことがあります。この問題を解決するには多くの方法がありますが、いくつかの一般的な解決策を以下で詳しく説明し、具体的なコード例を示します。端末の文字エンコーディング設定を変更する: 端末の文字エンコーディング設定によって、端末が正しく動作できるかどうかが決まります。

Eclipseの中国語文字化け問題を効果的に解決する実践的な方法 Eclipseの中国語文字化け問題を効果的に解決する実践的な方法 Jan 03, 2024 pm 05:50 PM

Eclipse で中国語の文字化けを迅速に解決するための実践的なヒントには、特定のコード サンプルが必要です。 概要: Eclipse は、複数のプログラミング言語の開発をサポートするだけでなく、複数のオペレーティング システムもサポートする、広く使用されている統合開発環境 (IDE) です。しかし、Eclipseを使用していると時折中国語の文字化けが発生し、開発作業に不便をもたらすことがあります。この記事では、Eclipse における中国語の文字化けの問題を迅速に解決するための実践的なテクニックを、具体的なコード例を交えて紹介します。 1つ、

matplotlibの中国語文字化け問題を解決する効果的な方法 matplotlibの中国語文字化け問題を解決する効果的な方法 Jan 13, 2024 am 11:03 AM

matplotlibの中国語文字化けを素早く解決する効果的な方法 はじめに: matplotlibはPythonでよく使われる描画ライブラリですが、注釈や表示に中国語を使用すると文字化けがよく発生します。この記事では、いくつかの効果的な回避策を紹介し、具体的なコード例を示します。 1. フォントを設定します。matplotlib はデフォルトで中国語表示にシステム フォントを使用しますが、システム フォントには中国語の文字が含まれていないことが多いため、適切な中国語フォントを手動で設定する必要があります。まず、コンピュータに次の機能があるかどうかを確認する必要があります。

See all articles