ホームページ バックエンド開発 PHPの問題 PHPでgbkをutf8に変換するにはどうすればよいですか?

PHPでgbkをutf8に変換するにはどうすればよいですか?

Nov 03, 2020 pm 05:29 PM
gbk iconv() php utf8

iconv() 関数は、php で gbk エンコーディングを utf8 エンコーディングに変換するために使用できます。iconv 関数は、既知の文字セット ファイルを別の既知の文字セット ファイルに変換できます。構文形式は「 iconv('GBK '、'UTF-8'、文字列)」。

PHPでgbkをutf8に変換するにはどうすればよいですか?

# 推奨: 「

PHP ビデオ チュートリアル

php で gbk を utf8 に変換する

php では、iconv() 関数を使用して gbk を utf8 に変換できます。

iconv 関数は、既知の文字セット ファイルを別の既知の文字セット ファイルに変換できます。例: GB2312 から UTF-8 に変換します。

iconv 関数は php5 に組み込まれており、GB 文字セットはデフォルトでオンになっています。

例:

<?php
header("Content-type:text/html;charset=GB2312");
echo $str= &#39;你好,这里是gbk转utf8!&#39;;
echo &#39;<br />&#39;;
echo iconv(&#39;GB2312&#39;, &#39;UTF-8&#39;, $str); //将字符串的编码从GB2312转到UTF-8
ログイン後にコピー

説明: php iconv 関数

php の iconv 関数ライブラリは、さまざまな文字セット間の変換を完了できます。プログラミングに不可欠な基本的な関数ライブラリですが、場合によっては、理由もなく iconv が一部のデータをトランスコードできない場合があります。たとえば、文字「—」を gb2312 に変換するとエラーが発生します。

この関数の使用法を見てみましょう。

最も単純なアプリケーションでは、gb2312 を utf-8 に置き換えます。

$text=iconv("GB2312","UTF-8",$text);
ログイン後にコピー

$text=iconv("UTF-8","GB2312 ", $text) 処理中に、英語名の「—」や「.」などの特殊文字が発生すると、変換は中断されます。これらの文字の後のテキストはそれ以上変換できません。

この問題を解決するには、次のコードを使用します。

$text=iconv("UTF-8","GBK",$text);
ログイン後にコピー

お読みのとおり、とても簡単です。gb2312 を使用する代わりに GBK を記述するだけです。

別のメソッド (2 番目のパラメーター) があり、次のように //IGNORE を追加してエラーを無視します。

iconv("UTF-8","GB2312//IGNORE",$data);
ログイン後にコピー

これら 2 つのメソッドには具体的な比較はありません。私は、2 番目のパラメーター One (gb2312 の代わりに GBK) アプローチの方が優れていると感じます。

PHP マニュアルの iconv() の説明:

iconv

(PHP 4 > = 4.0.5, PHP 5)
iconv – 文字列を要求された文字エンコーディングに変換する
Description
string iconv ( string in_charset, string out_charset, string str )
string str from in_charset to out_charset. 変換された文字列を返すか、失敗した場合は FALSE を返します。
文字列 //TRANSLIT を out_charset に追加すると、音訳が有効になります。これは、文字がターゲットの文字セットで表現できない場合に、文字変換が有効になることを意味します。 1 つまたは複数の類似した文字によって近似できます。文字列 //IGNORE を追加すると、ターゲットの文字セットで表現できない文字は暗黙的に破棄されます。それ以外の場合、str は最初の不正な文字から切り取られます。

この関数を使用して文字列エンコードを変換する場合、utf-8 を gb2312 に変換すると文字列が切り詰められる可能性があることに注意してください。現時点では、次の方法を使用して問題を解決できます。

$str=iconv(&#39;utf-8&#39;,"gb2312//TRANSLIT",file_get_contents($filepath));
ログイン後にコピー

つまり、2 番目のパラメータに赤い部分を追加します。これは、ソース エンコードに一致する文字がターゲット エンコードで見つからない場合を意味します。と似た文字が選択されるので変換してください。ここで //IGNORE パラメーターを使用して、変換できない文字を無視することもできます。

ignore は、変換中のエラーを無視することを意味します。ignore パラメータを指定しないと、この文字に続くすべての文字列を保存できません。

iconv は php のデフォルトの機能ではなく、デフォルトでインストールされるモジュールでもあります。使用する前にインストールする必要があります。

Windows2000 PHP の場合は、php.ini ファイルを変更して、extension=php_iconv.dll の前の「;」を削除します。同時に、元の PHP の下に iconv.dll をコピーする必要があります。インストール ファイルを winnt/system32 の下に置きます (dll がこのディレクトリを指している場合)。 Linux 環境では、静的インストールを使用して、configure 時に項目 --with-iconv を追加するだけです。iconv 項目は phpinfo で確認できます。 (Linux7.3 Apache4.06 php4.3.2)。

mb_convert_encoding 関数と iconv 関数の概要

mb_convert_encodingこの関数は、エンコーディングを変換するために使用されます。以前はプログラムコーディングの概念が理解できませんでしたが、今では少し理解できるようになりました。ただし、通常、英語にはエンコードの問題はなく、中国語のデータのみにこの問題が発生します。たとえば、Zend Studio または Editplus を使用してプログラムを作成するときは、gbk エンコーディングを使用します。データをデータベースに入力する必要があり、データベース エンコーディングが utf8 である場合は、データをエンコードして変換する必要があります。データベースに入るときに文字化けします。

GBK を UTF-8 に作成します:

<?php 
header("content-Type: text/html; charset=Utf-8"); 
echo mb_convert_encoding("妳係我的友仔", "UTF-8", "GBK"); 
?>
ログイン後にコピー

次に、GB2312 を Big5 に作成します:

<?php 
header("content-Type: text/html; charset=big5"); 
echo mb_convert_encoding("你是我的朋友", "big5", "GB2312"); 
?>
ログイン後にコピー

ただし、上記の関数をインストールする必要がありますが、最初に mbstring 拡張ライブラリを有効にする必要があります。

string mb_convert_encoding ( string str, string to_encoding [,mixed from_encoding] )最初に mbstring 拡張ライブラリを有効にし、; extension=php_mbstring.dll の前にある mb_convert_encoding を削除する必要があります。 php.ini 複数の入力エンコーディングを指定でき、内容に基づいて自動的に識別されますが、実行効率は iconv;

よりもはるかに悪くなります。

string iconv ( string in_charset, string out_charset, string str )注意:第二个参数,除了可以指定要转化到的编码以外,还可以增加两个后缀://TRANSLIT 和 //IGNORE,其中 //TRANSLIT 会自动将不能直接转化的字符变成一个或多个近似的字符,//IGNORE 会忽略掉不能转化的字符,而默认效果是从第一个非法字符截断。

一般情况下用 iconv,只有当遇到无法确定原编码是何种编码,或者iconv转化后无法正常显示时才用mb_convert_encoding 函数。

$content = iconv("GBK", "UTF-8″, $content);
$content = mb_convert_encoding($content, "UTF-8″, "
ログイン後にコピー

更多编程相关知识,请访问:编程学习课程!!

以上がPHPでgbkをutf8に変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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

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

PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

CakePHP データベースの操作 CakePHP データベースの操作 Sep 10, 2024 pm 05:25 PM

CakePHP でデータベースを操作するのは非常に簡単です。この章では、CRUD (作成、読み取り、更新、削除) 操作について理解します。

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

Cakephp4 で日付と時刻を操作するには、利用可能な FrozenTime クラスを利用します。

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

ファイルのアップロードを行うには、フォーム ヘルパーを使用します。ここではファイルアップロードの例を示します。

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

CakePHP は、PHP 用のオープンソース フレームワークです。これは、アプリケーションの開発、展開、保守をより簡単にすることを目的としています。 CakePHP は、強力かつ理解しやすい MVC のようなアーキテクチャに基づいています。モデル、ビュー、コントローラー

CakePHP バリデータの作成 CakePHP バリデータの作成 Sep 10, 2024 pm 05:26 PM

Validator は、コントローラーに次の 2 行を追加することで作成できます。

CakePHP のロギング CakePHP のロギング Sep 10, 2024 pm 05:26 PM

CakePHP へのログインは非常に簡単な作業です。使用する関数は 1 つだけです。 cronjob などのバックグラウンド プロセスのエラー、例外、ユーザー アクティビティ、ユーザーが実行したアクションをログに記録できます。 CakePHP でのデータのログ記録は簡単です。 log()関数が提供されています

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

Visual Studio Code (VS Code とも呼ばれる) は、すべての主要なオペレーティング システムで利用できる無料のソース コード エディター (統合開発環境 (IDE)) です。 多くのプログラミング言語の拡張機能の大規模なコレクションを備えた VS Code は、

See all articles