PHP配列エンコード変換

Jun 13, 2016 pm 12:55 PM
charset export gbk iconv

PHP 配列のエンコード変換
一部の特殊文字の表示効果により、ajax テクノロジーを使用しているため、従来の問題であるエンコード変換も必要になりました。

一部のフォーム検証では json データを返す必要があります。PHP の json_encode 関数は utf-8 エンコーディングのみをサポートしているため、目的の効果は GBK 配列を utf-8 配列に変換して渡すことです。 json_encode 関数。

最初のアイデアは、配列をシリアル化し、iconv 関数を使用してエンコーディングを変換し、それを逆シリアル化することです。コードは次のとおりです。

unserialize(iconv('gbk','utf-8',serialize($array)));  
ログイン後にコピー
得られた結果は空白でした。後で、デフォルトのエンコーディング ini_set('default_charset', 'gbk'); が utf-8 文字列を逆シリアル化するのに使用するのは簡単ではないことを思い出しました。シリアル化と逆シリアル化の間に ini_set('default_charset', 'utf-8'); を追加することもできるはずですが、これはグローバルなエンコード設定であり、エラーが発生しやすいため、これを行うのは常に少し面倒に感じます。データベース操作などのコーディングの問題。次に、気が変わって、var_export 関数を使用して配列プロトタイプを構築するシリアル化メソッドを使用します。最終的な関数は次のとおりです。

function array_iconv($in_charset,$out_charset,$arr){  
        return eval('return '.iconv($in_charset,$out_charset,var_export($arr,true).';'));  
}  
ログイン後にコピー

原理は非常に単純です。var_export は 2 番目のパラメータを true に設定し、配列のプロトタイプ文字列を返し、その文字列を utf-8 エンコーディングに変換してから、eval を使用して戻り値を実行します (匿名関数と似ていますか?)。問題を完璧に解決します。

フォローアップ: その後、より良い方法があるかどうかを確認するためにインターネットで情報を検索しました。見つかったものはどれも似たようなもので、配列の要素が多すぎる場合や次元が多すぎる場合は、パフォーマンスは確実に良くありません。何が起こっているのでしょうか? データの一貫性を確保するために、N 次元配列であるか連想配列であるかを考慮する必要はありません。配列の変換前と変換後。コードの長さとループとネイティブ メソッドの比較から判断すると、誰もがすでに選択肢を持っていると思います。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、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衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

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

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

「要求されたモジュールは、という名前のエクスポートを提供しません」というエラーが Vue Cli に表示される - 解決方法は? 「要求されたモジュールは、という名前のエクスポートを提供しません」というエラーが Vue Cli に表示される - 解決方法は? Aug 20, 2023 pm 07:25 PM

「要求されたモジュールはエクスポート名を提供しません」というエラーが VueCli に表示される – 解決方法は? Vue プロジェクトの開発中に、「Therequestedmoduledoesnotprovideanexportnamed」というエラー メッセージが表示される場合があります。このエラー メッセージは通常、サードパーティ コンポーネントを導入するときに表示されます。

中国語処理におすすめの必須機能:PHPのiconv関数を詳しく解説 中国語処理におすすめの必須機能:PHPのiconv関数を詳しく解説 Jun 27, 2023 pm 02:04 PM

テキスト処理中に、文字列をさまざまなエンコード形式に変換するのは一般的な要件です。 PHP 言語で提供される iconv (InternationalizationConversion) 関数は、このニーズに非常に便利に応えます。この記事では、iconv 関数の使い方を次の側面から詳しく紹介します。 iconv 関数の定義と共通パラメーターの紹介 デモ例: GBK エンコード文字列を UTF-8 エンコード文字列に変換する デモ例: UTF を変換する

Go 言語エンコード分析: UTF-8 と GBK の比較 Go 言語エンコード分析: UTF-8 と GBK の比較 Mar 28, 2024 pm 01:54 PM

Go 言語エンコード分析: UTF-8 と GBK の比較 Go 言語では、文字列エンコードの処理は一般的なタスクの 1 つです。その中でも、UTF-8 と GBK の 2 つはよく使用される文字エンコード方式です。この記事では、UTF-8 と GBK を詳細に比較し、その違いと使用法について説明し、具体的なコード例を添付します。 1. UTF-8 と GBK の概要 UTF-8: UTF-8 は、世界中のほぼすべての言語の文字を表現できる可変長 Unicode エンコード方式です。 UTF-8

CentOS での iconv コマンドの概要 CentOS での iconv コマンドの概要 Dec 29, 2023 pm 07:52 PM

iconv-fencoding[-tencoding][inputfile]...[機能] 指定されたファイルの内容をあるエンコーディングから別のエンコーディングに変換します。 [説明]-fencoding: 文字をエンコーディングからエンコーディングに変換します。 -tencoding: 文字をエンコーディングに変換します。 -l: 既知のエンコード文字セットをリストします -ofile: 出力ファイルを指定します -c: 出力内の不正な文字を無視します -s: 警告メッセージを抑制しますが、エラー メッセージは抑制しません --verbose: 進行状況情報を表示します -f および -t は実行できます指定された有効な文字は、-l オプションを使用してコマンドにリストされます。 【例】* 現在サポートされている文字コードの一覧

エクスポートとエクスポートのデフォルトの違い エクスポートとエクスポートのデフォルトの違い Oct 12, 2023 am 10:24 AM

エクスポートとエクスポート デフォルトの違いは、エクスポート キーワードは 1 つ以上の変数、関数、またはクラスのエクスポートに使用されるのに対し、エクスポート デフォルト キーワードはデフォルトの変数、関数、またはクラスのエクスポートに使用されることです。他のモジュールでは、import キーワードを使用して、これらのエクスポートされた変数、関数、またはクラスをインポートできます。

WIN10 で文字セットを gbk から utf_8 に変更する方法のチュートリアル WIN10 で文字セットを gbk から utf_8 に変更する方法のチュートリアル Mar 27, 2024 pm 05:20 PM

1. [スタート] メニューを右クリックし、[ファイル名を指定して実行] をクリックします。 2. Ctrl キーを押して Enter キーを押して、コントロール パネルを開きます > [時計と地域] > [地域] > [管理方法] > [オペレーティング システムの地域設定を更新] > [ベータ版: UnicodeUTF-8 を使用してグローバル言語サポートを確保する] をチェックします。

Javaのexportメソッドを使用してExcelファイルをエクスポートする方法 Javaのexportメソッドを使用してExcelファイルをエクスポートする方法 Apr 27, 2023 pm 08:43 PM

1.エクスポート関数 //エクスポート ファイル インターフェイス publicStringexport(){returnthis.myExport(exportList);}2.エクスポート カラム名 privateStringmyExport(Listlist){com.bronzesoft.power.tools.json.JSONObjectinfo=newcom.bronzesoft.power.tools .json.JSONObject();try{ListheadList=newArrayList(Arrays.asList(&

PHPはフォントの文字エンコードベクトルを変更します PHPはフォントの文字エンコードベクトルを変更します Mar 21, 2024 pm 03:11 PM

この記事では、PHP のフォントの文字エンコーディング ベクトルを変更する方法について詳しく説明します。編集者が非常に実用的であると考えたので、参考として共有します。この記事を読んで何かを得ることができれば幸いです。 PHP での文字列の文字エンコーディングの変更 PHP では、文字列の文字エンコーディングによって文字の表現方法が決まります。文字列の文字エンコーディングを変更するには、次の手順を使用できます: 1. 現在の文字エンコーディングを確認します $encoding=mb_detect_encoding($string); これにより、文字列の現在の文字エンコーディングを表す文字列 (例: "UTF)" が返されます。 -8」または「ISO-8859-1」。 2. mb_convert_encoding を使用する

See all articles