php在csv中写希伯来语/ UTF-8

Don*_*Den 10 php csv codeigniter hebrew

嗨,我正在尝试用HEBREW文本写一个CSV.它写了一些符号而不是希伯来文.下面是我的PHP代码.

<?php
    $list = array (
                array('????', '????', '????', '????'),
                array('123', '456', '789'),
                array('"????"', '"????"')
            );
    $fp = fopen('file.csv', 'w');
            //fputs($fp, $bom =( chr(0xEF) . chr(0xBB) . chr(0xBF) ));
            foreach ($list as $fields) {
                fputcsv($fp, $fields);
            }
     fclose($fp);
?>
Run Code Online (Sandbox Code Playgroud)

我检查了互联网并添加了" fputs($ fp,$ bom =(chr(0xEF).chr(0xBB).chr(0xBF))) "但它没有成功.有人能帮我吗.

以下是我得到的输出.

在此输入图像描述

man*_*ani 3

刚刚运行了你的代码。文本编码正确,生成的 csv 有效。在支持希伯来语文本的文本编辑器中打开 CSV 将正确显示。要打开包含希伯来语的 CSV,您需要按照此处建议的说明进行操作

\n\n

更新:

\n\n

事实证明,MS 使用 UTF-16,而不仅仅是它使用 UTF-16LE(小端)。为了正确打开 MS CSV,您需要 UTF-16LE 编码文本、制表符分隔文件。

\n\n
$list = array (\n            array(\'\xd7\xa9\xd7\x9c\xd7\x98\xd7\x9c\', \'\xd7\xa9\xd7\x9c\xd7\x98\xd7\x9c\', \'\xd7\xa9\xd7\x9c\xd7\x98\xd7\x9c\', \'\xd7\xa9\xd7\x9c\xd7\x98\xd7\x9c\'),\n            array(\'123\', \'456\', \'789\'),\n            array(\'"\xd7\xa9\xd7\x9c\xd7\x98\xd7\x9c"\', \'"\xd7\xa9\xd7\x9c\xd7\x98\xd7\x9c"\')\n        );\n\n$fp = fopen(\'file.csv\', \'w\');\n\n//UTF-16LE BOM\nfputs($fp, chr(0xFF) . chr(0xFE));\n\nforeach ($list as $fields) {\n    $out = \'\';\n    foreach ($fields as $k => $v){\n        $fields[$k] = mb_convert_encoding($v, \'UTF-16LE\', \'UTF-8\');          \n    }\n\n    // UTF-16LE tab\n    $out = implode(chr(0x09).chr(0x00), $fields);\n\n    // UTF-16LE new line\n    fputs($fp, $out.chr(0x0A).chr(0x00));\n}\nfclose($fp);\n
Run Code Online (Sandbox Code Playgroud)\n\n

上面的代码可以工作,但不确定其效率。

\n