我想导入我在 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");
这个解决方案应该适用于英语、希伯来语、法语、德语等字符。