【发布时间】:2013-01-24 17:03:46
【问题描述】:
所以我这样做了(我使用 Drupal 6):
while(@ob_end_clean());
drupal_set_header("Content-type: text/csv;");
drupal_set_header("Cache-Control: no-store, no-cache");
drupal_set_header("Content-Disposition: attachment; filename=translations.csv");
print chr(255) . chr(254) . mb_convert_encoding($output, 'UTF-16LE', 'UTF-8');
exit;
导出 utf-8 字符的 CSV。当我导入 excel 时,utf-8 字符会正确显示。
问题是,excel 不会解析分隔符,即逗号将全部显示在一列中,而不是在文件打开时用作分隔符。
有没有办法让我打开它时,逗号将用作分隔符?
csv 中的一行如下:
$output .= '"'.str_replace('"', '""', $id).'","'.str_replace('"', '""', $source).'","'.str_replace('"', '""', $translation) . '"';
我尝试使用制表符 \t 而不是逗号作为分隔符,但同样的事情会发生,即。标签不会用作文件打开时的分隔符
【问题讨论】:
-
再次尝试使用制表符,但逐行写入 UTF-16LE,这是 Excel 使用的默认分隔符,除非您明确使用 excel 中的导入功能...为什么不能使用 fputcsv ()?
-
我做了...我用 \t 替换了 , 但它不起作用 excel 会显示一大堆 \t
标签: php excel drupal csv utf-8