PHPを使ってWebサイトを開発していると、よく中国語の文字化けに遭遇します。中国語の文字化けはWebサイトの見た目に影響を与えるだけでなく、ユーザーエクスペリエンスにも影響を与えるため、早期に解決する必要があります。この記事ではPHPで文字化けが表示される場合の解決方法を紹介します。
PHP 構成ファイルでは、デフォルトの文字セットを UTF-8 に設定する必要があります。 php.ini ファイルを開き、次の内容を見つけます:
;*** Charset *** ; default_charset ; Default character set for new content types ; Default Value: "" ;mime_magic.debug = Off
「default_charset」を「UTF-8」に変更します:
;*** Charset *** ; default_charset ; Default character set for new content types ; Default Value: "" default_charset = "UTF-8" ;mime_magic.debug = Off
完了後、Apache サービスを保存して再起動します。
PHP では、中国語の文字化けの問題を解決するために、HTTP ヘッダー情報を設定する機能も提供しています。 PHP ファイルの先頭に次のコードを追加します。
header("Content-type: text/html; charset=utf-8");
このコード行の機能は、HTTP ヘッダー情報を設定し、現在のページのエンコード形式が UTF-8 であることをブラウザーに伝えることです。
PHP を使用してデータベースに接続する場合、文字化けを避けるためにデータベースの文字セットを UTF-8 に設定する必要もあります。データの読み取り中。データベース接続を確立するためのコードに次のコードを追加できます。
mysqli_set_charset($conn,"utf8");
ここで、$conn はデータベースに接続するための変数名です。
作成したデータベース テーブルに中国語フィールドが含まれる場合は、データベース テーブルのフィールド エンコーディングを UTF-8 に設定する必要もあります。データベーステーブルを作成する SQL ステートメントに次のコードを追加できます。
CREATE TABLE `table_name` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(50) COLLATE utf8_unicode_ci NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
このうち、name フィールドのエンコード形式は utf8_unicode_ci です。
PHP には、中国語の文字化けを処理するためによく使用される関数もいくつか用意されています。 iconv() 関数: 文字列間のエンコード変換を実装します。
$new_str = iconv("gb2312","utf-8", $str);
mb_convert_encoding() 関数: 文字列をあるエンコーディングから別のエンコーディングに変換できます。
$new_str = mb_convert_encoding($str,"utf-8","gb2312");
以上がPHPで表示される文字化けを解決する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。