PHP 開発では、中国語の文字エンコーディングの処理が一般的な問題になります。特にデータベースとのやり取り、ファイルの読み書き、ネットワーク送信などの操作では、漢字の文字化けに遭遇することがよくあります。中でもUTF-8エンコードは汎用の文字エンコード方式としてWeb開発で広く使われています。この記事では、PHP 中国語トランスコーディング エラーを修正するいくつかのテクニックを紹介し、具体的なコード例を示します。
まず、中国語の文字を含む PHP ファイルの先頭で、ファイル エンコーディングを UTF-8 に設定する必要があります。これは、ファイルの先頭に次のコードを追加することで実現できます:
<?php header('Content-Type: text/html; charset=UTF-8');
データベースと対話するときは、データベースのエンコーディングが確実に行われるようにする必要があります。接続は PHP ファイルのエンコーディングと一致しています。データベースに接続する前に、次のコードを使用してデータベース接続のエンコーディングを設定できます:
$conn = new mysqli($servername, $username, $password, $dbname); $conn->set_charset("utf8");
フォーム送信から中国語の文字を取得する場合、POST データはたとえば、mb_convert_encoding
関数を使用して UTF-8 エンコードに変換します:
$name = $_POST['name']; $name = mb_convert_encoding($name, "UTF-8", "auto");
中国語文字をページの文字エンコードが正しく設定されていること、および必要なエンコード変換を実行するために mb_convert_encoding
関数が使用されていることを確認する必要があります:
echo mb_convert_encoding($text, "HTML-ENTITIES", "UTF-8");
ファイルの読み取りおよび書き込みを行う場合、ファイルは正しいエンコード形式で処理される必要があります。
$fileContent = file_get_contents('file.txt'); $fileContent = mb_convert_encoding($fileContent, 'UTF-8', 'auto');
URL 内の中国語文字を処理するときは、urlencode
と # を使用する必要があります。 ## urldecode 関数は、文字化けを回避するためにエンコードおよびデコード操作を実行します。
$url = "http://example.com?name=" . urlencode($name); $name = urldecode($_GET['name']);
以上がPHP 中国語トランスコーディング エラーの修正: UTF-8 エンコーディング処理のヒントの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。