ホームページ >バックエンド開発 >PHPの問題 >phpでtxtに書かれた文字化けを解決する方法は何ですか?

phpでtxtに書かれた文字化けを解決する方法は何ですか?

尊渡假赌尊渡假赌尊渡假赌
尊渡假赌尊渡假赌尊渡假赌オリジナル
2023-06-06 13:41:231413ブラウズ

php txt書き込み時の文字化けを解決するには、 1. ファイルエンコーディングを設定する ファイルを書き込む前にファイルエンコーディングをUTF-8に設定できます 2. BOMバイトオーダーマークを出力します文字化けを防ぐためにファイルがどの Unicode エンコード方式を使用しているかを識別するため; 3. fwrite() 関数をオプションとともに使用して、ファイルに書き込まれるデータ長が指定されたデータ長と一致していることを確認します。

phpでtxtに書かれた文字化けを解決する方法は何ですか?

このチュートリアルのオペレーティング システム: Windows 10 システム、php8.1.3 バージョン、Dell G3 コンピューター。

php が文字化けした txt 文字を書き込む場合の解決策:

1. ファイルのエンコーディングを設定します

ファイルを書き込む前に、mb_internal_encoding() を呼び出して、 mb_http_output() 関数で、ファイルのエンコードを UTF-8 に設定します。

<?php
// 设置内部字符编码为UTF-8
mb_internal_encoding(&#39;UTF-8&#39;);
// 设置 HTTP 输出字符编码为UTF-8
mb_http_output(&#39;UTF-8&#39;);
$file = &#39;data.txt&#39;;
$content = &#39;你好世界!&#39;;
$handle = fopen($file, &#39;w&#39;);
fwrite($handle, $content);
fclose($handle);
?>

2. 出力 BOM バイト オーダー マーク

BOM (バイト オーダー マーク) は、通常 Unicode テキスト ファイルの先頭に表示される特殊なバイト シーケンスです。ファイルがどの Unicode エンコード方式 (ビッグエンディアンまたはリトルエンディアン) を使用しているかを識別するために使用されます。ファイルヘッダにBOMマークがない場合、文字化けする可能性があります。

次のコードを使用して、BOM マークをファイルに出力できます:

<?php
$file = &#39;data.txt&#39;;
$content = "\xEF\xBB\xBF" . &#39;你好世界!&#39;;  // 在内容前添加BOM标记
$handle = fopen($file, &#39;w&#39;);
fwrite($handle, $content);
fclose($handle);
?>

3. fwrite() 関数をオプションとともに使用します

fwrite() この関数は、書き込まれる文字列の長さを示すオプションの 3 番目のパラメーターを受け入れることができます。ファイルに書き込まれるデータの長さが指定された長さと一致しない場合、文字化けが発生します。したがって、このオプションを使用すると、ファイルに書き込まれるデータが指定された長さと同じ長さになるようにすることができます。

rree

以上がphpでtxtに書かれた文字化けを解決する方法は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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