php fread() で文字化けが発生するのは、出力ページのエンコーディングが読み込んだファイルのエンコーディングと一致していないためです。解決策: 1. 対応する PHP ファイルを開きます。2. fread 関数を通じてファイルを読み込みます。 ; 3. 「iconv('gbk', 'utf-8', $data)」メソッドを通じて、読み取られたコンテンツをトランスコードするだけです。
このチュートリアルの動作環境: Windows 10 システム、PHP バージョン 8.1、DELL G3 コンピューター
php が動作しない場合の対処方法fread()が文字化けしてる?
phpではfread関数で直接ファイルを読み込んでいますが、ファイルの内容に漢字が含まれると文字化けしてしまいます。
出力ページのエンコーディングが、読み取られるファイルのエンコーディングと一致していない可能性があります。
#解決策:
iconv('gbk', 'utf-8', $data)
(PHP 4 >= 4.0.5, PHP 5, PHP 7, PHP 8)
iconv — 必要な文字エンコーディングに従って文字列を変換します
説明
iconv(string $in_charset, string $out_charset, string $str): string
文字列 str を in_charset から out_charset に変換します。
パラメータin_charset
入力文字セット。
out_charset
出力文字セット。
out_charset の後に //TRANSLIT という文字列を追加すると、音訳機能が有効になります。これは、文字がターゲット文字セットで表現できない場合、1 つ以上の類似した文字で近似できることを意味します。文字列 //IGNORE を追加すると、ターゲット文字セットで表現できない文字は警告なしに破棄されます。それ以外の場合は、E_NOTICE が発生し、false が返されます。
警告
//TRANSLIT 运行细节高度依赖于系统的 iconv() 实现(参见 ICONV_IMPL)。 据悉,某些系统上的实现会直接忽略 //TRANSLIT,所以转换也有可能失败,out_charset 会是不合格的。
str
変換する文字列。
戻り値
変換された文字列を返すか、失敗した場合は false を返します。
fread()fread() 関数は、開いているファイルを読み取ります。
関数は、指定された長さに達するか、ファイルの終わり (EOF) に達すると (どちらか早い方)、実行を停止します。
この関数は読み取った文字列を返すか、失敗した場合は FALSE を返します。
構文
string fread ( resource $handle , int $length )
パラメータ
ハンドル ファイル システム ポインタは、通常は fopen() によって作成されるリソースです。
長さは必須です。読み取る最大バイト数を指定します。
推奨学習: 「
PHP ビデオ チュートリアル以上がphp+fread()が文字化けした場合の対処法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。