当前位置: 首页 > 知识库问答 >
问题:

php用csv编写希伯来文/UTF-8

司马渝
2023-03-14

你好,我想写一个带有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);
?>

我在互联网上查了一下,添加了“fputs($fp,$bom=(chr(0xEF).chr(0xBB).chr(0xBF))”,但没有成功。谁能帮帮我吗。

下面是我得到的结果。

共有2个答案

齐鸿光
2023-03-14

我想我以前遇到过这种情况,有时候excel的某些版本没有显示正确的utf8字符/字体。但是文件本身已经有了utf8。

尝试将csv打开到记事本中,查看它是否为utf8 bom,以及是否显示utf8字符

党佐
2023-03-14

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

更新:

因此,MS使用UTF-16,而不仅仅是使用UTF-16LE(little endian)。要正确打开MS CSV,您需要UTF-16LE编码的文本,制表符分隔的文件。

$list = array (
            array('שלטל', 'שלטל', 'שלטל', 'שלטל'),
            array('123', '456', '789'),
            array('"שלטל"', '"שלטל"')
        );

$fp = fopen('file.csv', 'w');

//UTF-16LE BOM
fputs($fp, chr(0xFF) . chr(0xFE));

foreach ($list as $fields) {
    $out = '';
    foreach ($fields as $k => $v){
        $fields[$k] = mb_convert_encoding($v, 'UTF-16LE', 'UTF-8');          
    }

    // UTF-16LE tab
    $out = implode(chr(0x09).chr(0x00), $fields);

    // UTF-16LE new line
    fputs($fp, $out.chr(0x0A).chr(0x00));
}
fclose($fp);

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

 类似资料:
  • 我使用的是windows操作系统。使用tomcat 8。IDE-Netbeans 8。JDK1。8.0_05 我试图为某些servlet指定希伯来语url模式。(我通过设置注释的属性,以及将其放入文件,尝试了这两种方法)。 希伯来语地图不起作用。我检查Tomcat运行时映射的样子(通过使用JConsole的MBeans选项卡),希伯来语url显示为乱码(特别是问号)。 我试过: 添加-J-Dfil

  • 我有一个编码问题。我有一个Android应用程序,包括一个文本字段,允许用户使用希伯来文键盘和希伯来文字符键。 我希望根据pc862希伯来语代码页对该数据进行编码,以便将其发送到打印机进行打印(打印机配置为根据该代码页接受数据)。我应该能够使用以下代码执行此操作: 根据这里找到的文件http://docs.oracle.com/javase/7/docs/technotes/guides/intl

  • 问题内容: 我有一个包含unicode字符串的词典列表。 可以将字典列表写入CSV文件。 我希望CSV文件以UTF8编码。 该模块无法处理将unicode字符串转换为UTF8的操作。 该模块文档具有的一切转换为UTF-8的例子: 它也有一个类。 但是…我该如何处理这些?他们是否不必将自己插入其中,以捕获反汇编的字典并对其进行编码,然后再将其写入文件中?我不明白 问题答案: 更新 :第三方unico

  • 问题内容: 我有一个小的Java方法,可将短消息插入到MySQL数据库中。该表的默认排序规则是utf8_unicode_ci,而Java代码是: 问题是,当lMessage是希伯来语时,结果是字符串“ ??????” 顺便说一句:我不知道它是否有帮助,但是还有一个PHP脚本有时会写入此数据库中的另一个相似表,并且可以正常工作。 问题答案: 在代码中设置UTF-8。看到这个;

  • 我正在尝试用英文的php制作一个目录,它正在工作。但当我尝试用希伯来语时,它会用吉卜里语创建文件夹,如下所示:“׳•׳•׳•׳”;“|׳׳-׳§׳•׳׳” 我怎样才能修好它?谢谢

  • 在 Dreamweaver 中将双向流量应用到阿拉伯语和希伯来语文本;使用标签编辑器、“表格”属性和 Div 属性。 在中东和北非版本的此软件中,可通过阿拉伯语和希伯来语使用新的功能和改进功能。 双向文字流 中东语言的文字大多从右向左 (RTL) 书写。但是,一般而言,最常用的形式为双向 (bidi) 文字 - 混用从左向右和从右向左书写的文字。bidi 文字的一个示例是含有阿拉伯语和英语文字的段