この記事では主に、Mac で php を使用して文字化けした CSV ファイルを生成する方法を紹介します。必要な方は参考にしてください。 phpメソッドでCSVファイルをエクスポートすると文字化けする問題
この質問について話す前に、まずCSVファイルとは何なのかについて話しましょう。 Comma Separator Value (カンマ区切り値) もあります。 Mysql から CSV へのデータのエクスポートや SqlServer への CSV のインポートなど、データ変換によく使用される中間ファイルが存在します。 Linux で PHP スクリプトを使用して、条件に従って Mysql データベースからテーブル データを csv にエクスポートします。 CSV ファイルを開くと、中身の中国語が文字化けします (Windows の CSV ファイルは Microsoft Excel に関連付けられています)。 Notepad++ または Word を使用すると正常に開きますが、レイアウトが乱雑になります。理由: BOM が問題を抱えており、Microsoft も問題を抱えています。 BOMとは何ですか? Byte Order Mark(ビットオーダーマーク)もあります。
Unicode ファイルを識別するために、Microsoft では、すべての Unicode ファイルが ZERO WIDTH NOBREAK SPACE 文字で始まることをお勧めします。これは、ファイルで使用されているエンコーディングとバイト順序 (ビッグ エンディアンまたはリトル エンディアン) を識別するための「署名」または「バイト オーダー マーク (BOM)」として機能します。具体的な対応関係を次の表に示します。
バイトエンコード形式
FF FE 00 00
FEFF | |
FF FE | |
EF B OM、これは既存の ASCII ファイル構文規則に違反するためです。 | |
実装コード if | 注: csv ファイルを記述するときは、php ソース コードが utf-8 であり、BOM がなく、何も出力されないことを確認してください。 |
Excel が csv を読み取るとき、ファイル ヘッダーに BOM 情報がない場合は、デフォルトで Unicode エンコードで読み取られます。 (この BOM は、Microsoft 自身が定義したファイル ヘッダー プロトコルです。その名前が示すように、ファイル ヘッダーに保存されます。保存される内容は、ファイルのエンコーディングを識別する情報です。)
関連する推奨事項:
PHP は一意の RequestID クラスを生成します
php で .csv サフィックス ファイル テーブルを生成する方法の詳細な例
以上がMac で PHP が文字化けした CSV を生成するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。