我想导入一个我在PHP中创建的CSV文件,并在希伯来文中包含文本。用PHP在希伯来文中读取csv文件
这是我创建的文件:
header("Content-Type: application/comma-separated-values; charset=UTF-16LE");
header("Content-Disposition: attachment; filename=\"$fileName\"");
res = "";
foreach($data as $row) {
foreach($row as $coll) {
$res .= $coll . "\t";
}
$res .= "\r\n";
}
// Convert $res from UTF8 to UTF-16LE and add special chars at the beginning
echo chr(255) . chr(254) . mb_convert_encoding($res, 'UTF-16LE', 'UTF-8');
该代码工作,我得到一个CSV与希伯来字符的文件正确显示。
当我试图读取同一个文件时,希伯来文字符显示不好(例如,“自动设置”为0)。这是我试过的代码:
$fp = fopen($file_full_path,'r') or die("can't open file");
print "<table>\n";
while($csv_line = fgetcsv($fp)) {
print '<tr>';
for ($i = 0, $j = count($csv_line); $i < $j; $i++)
{
$val = $csv_line[$i];
print '<td>'.$val.'</td>';
}
print "</tr>\n";
}
print '</table>\n';
fclose($fp) or die("can't close file");
这个解决方案应该为英语,希伯来语,法语,德语字符和更多的工作。
当添加标题(“内容的全功能-Type:text/html; charset = UTF-16LE“);到脚本的顶部,输出如下所示:掏浯楡狝振挚汩慹... 我试过使用fputcsv()来生成CSV文件,但希伯来文字符在打开时不能很好地显示它与Excel – Shani1351 2012-08-14 20:32:46
@ Shani1351好的,这很奇怪 - 你确定内容是小endian?试试'Content-Type:text/html; charset = UTF-16BE' – DaveRandom 2012-08-14 20:41:04
使用Content-Type时:text/html; charset = UTF-16BE输出如下所示:“老化过程êהליךԠזדקנותԉ”... – Shani1351 2012-08-14 20:45:58