php による CSV インポートの文字化け問題の解決策: 1. 解析関数 "function tb_str_getcsv($string, $delimiter=',', $enclosure='"') {...}"; を構築します。 2. ファイルを変数に読み込みます; 3. "substr($s,2)" を通じて BOM ヘッダーを削除します。 : Windows7 システム、PHP バージョン 8.1、Dell G3 コンピューター
php で文字化けした csv ファイルがインポートされた場合はどうすればよいですか?
インポートされた csv ファイルが文字化けする問題を解決する淘宝アシスタント by php と分析
PHP を使用して csv ファイルをインポートすると、特に淘宝アシスタントのデータ パッケージをインポートする場合に中国語の文字化けが発生することがよくあります。インターネットで多くのトランスコード方法を調べましたが、どれも問題を解決できませんでした。その理由は何ですか? まず第一に、淘宝アシスタントによってエクスポートされた csv ファイルは UTF-16LE エンコードされていますが、これは珍しいことですよね?
第二に、その csv ファイルはカンマ区切りではありません
合格 次のコードは、csv ファイル解析機能を実現できます。
/** * 构造一个解析函数 * (php内置的str_getcsv不知为何会出现局部乱码,原因不详) */ function tb_str_getcsv($string, $delimiter=',', $enclosure='"') { $fp = fopen('php://temp/', 'r+'); fputs($fp, $string); rewind($fp); while($t = fgetcsv($fp, strlen($string), $delimiter, $enclosure)) { $r[] = $t; } if(count($r) ==1) return current($r); return $r; } $s = file_get_contents($path); //读取文件到变量 $s = iconv('UTF-16LE', 'utf-8', substr($s,2));//转码,substr($s,2)的作用是去掉 BOM 头 FFFE //有的第三方数据包很不规范,控制符没有用空双引号 //可能导致列数不对应,在此加上空双引号 $s = str_replace("\t\t", "\t\"\"\t", $s); $s = str_replace("\t\t", "\t\"\"\t", $s); $csv_data = tb_str_getcsv($s, "\t");//读取到数组
推奨学習: "
PHP ビデオ チュートリアル"
以上がPHPでCSVをインポートすると文字化けする場合はどうすればいいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。