Linux の fgetcsv で取得した配列要素が空文字列になる問題の解決方法についてのチュートリアルを共有し、必要な友人が参照できるようにします。
CSVを使用してデータをインポートする場合、通常はWindowsシステムを使用し、GBKを使用してWindows Excelで編集します。
しかし、サーバーでは、多くが Linux サーバーを使用しており、ソース プログラムは UTF-8 を使用しているため、文字エンコーディングの問題が発生しやすいです。
CSVファイルをUTF-8にトランスコードするだけであれば、Windowsサーバー上では問題ありません
RedHat5.5では、fgetcsvで取得した配列において、列の内容が中国語の場合、その列に対応する配列要素は空文字列になりますが、英語は通常です
この時点で、エリアを設定する必要があります:
コードは次のとおりです |
コードをコピー |
setlocale(LC_ALL, 'zh_CN.UTF-8');
コードは次のとおりです
// アップロードされた CSV ファイルは通常、GBK エンコードされ Excel で編集されます
// ソースコードは UTF-8 なのでトランスコードする必要があります
file_put_contents($new_file, iconv('GBK', 'UTF-8', file_get_contents($new_file)));
//ini_set('auto_detect_line_endings', true);
// 設定範囲:簡体字中国語、UTF-8エンコード
setlocale(LC_ALL, 'zh_CN.UTF-8');
//CSVファイルを開く
$handle = fopen($new_file, 'r');
// 列ヘッダーを取り出します
$data_heads = fgetcsv($handle);
|
http://www.bkjia.com/PHPjc/445322.htmlwww.bkjia.com本当http://www.bkjia.com/PHPjc/445322.html技術記事 Linux の fgetcsv で取得した配列要素が空文字列になる問題の解決方法についてのチュートリアルを共有し、困っている友達が参照できるようにします。 CSV を使用してデータをインポートする場合、通常は...