ホームページ >バックエンド開発 >PHPチュートリアル >PHPでファイルを読み込むときに文字化けする問題の解決策
PHP を使用してファイル 3.txt を読み込むと、D:/3.txt は utf-8 ファイルであるため文字化けの問題が発生します。 コード:
このテキストを UTF テキストとしてマークするために、Microsoft は次の 3 バイトを追加しました。 ord($charset[1]) == 239 && ord($charset[2]) == 187 && ord($charset[3]) == 191 上記のコードはBOMを削除するためのphpコードです。 インターセプトする場合は4番目のポジションからインターセプトを開始できます。 1桁目、2桁目、3桁目から切り取ると文字化けが発生する場合があります。 UTF-8 エンコードでは、中国語の文字は 3 バイトで表現されます。 中国語の文字がある場合は、ANSI エンコードを使用しないでください。ANSI エンコードを使用しないと、読み取り時に文字化けが発生します。 ANSI エンコード (百科事典より) Unicodeとansiはどちらも文字コードの表現です。 コンピュータがより多くの言語をサポートするために、通常は 0x80 ~ 0xFF の範囲の 2 バイトが 1 文字を表すために使用されます。たとえば、中国語の文字「中」は、中国語のオペレーティング システムでは 2 バイト [0xD6,0xD0] に格納されます。 国や地域が異なると、さまざまな規格が策定され、その結果、GB2312、BIG5、JIS などの独自の符号化規格が作成されます。文字を表すために 2 バイトを使用するこれらのさまざまな中国語文字拡張エンコーディングは、ANSI エンコーディングと呼ばれます。簡体字中国語システムでは、ANSI エンコードは GB2312 エンコードを表し、日本語オペレーティング システムでは、ANSI エンコードは JIS エンコードを表します。 異なる ANSI コードは相互に互換性がなく、情報が国際的に交換される場合、2 つの言語に属するテキストを同じ ANSI コード化されたテキストに格納することはできません。 英語または記号の場合、エンコーディングは 1 バイトで、最上位ビットは 0 です。中国語の場合、最上位ビットは 1 で、サイズは 2 バイトでなければなりません。 この観点から、中国語のコンピュータで ANSI を保存するテキスト ファイルに日本語または韓国語が含まれている場合、エンコードの競合が発生する可能性があります。つまり、ANSI エンコードを使用して中国語、日本語、韓国語をメモ帳に保存することはできません。混合テキスト。コンピューターのメモ帳は中国語バージョンのシステム用に開発されています。 ユニバーサルにしたい場合は、txt ファイルを Unicode 形式のテキスト ファイルに保存する必要があります。したがって、国際的なことをしたい場合は、Unicode を使用する方が便利です。 実際、今日のオペレーティング システムのほとんどは Unicode でエンコードされています。ANSI エンコードを使用する場合でも、システムの内部処理中に Unicode に変換する必要があるため、コード効率が低くなります。 Unicodeを使うとさらに便利! php文字化け問題 コード:
文字化けの問題が発生しています。 header("Content-type: text/html;charset=utf-8"); を追加します。これで完了です。 HTMLエンコード形式をutf-8に設定するために使用されます文字化けを解決するには、次の3つの場所を見てください。 1. データベースのエンコード 2. ページエンコーディング 3. 接続エンコード これら 3 つの場所が一致していれば、コード化けの問題は発生しません。 |