使用字节顺序掩码(BOM)在PHP中以UTF-16LE编码文件

时间:2014-05-24 18:57:21

标签: php encoding utf-16le

我有一个PHP,它通过我的Javascript在POST中接收数据,我想将这些数据写在CSV文件中。我需要用UTF-16LE编码这个文件。

我尝试的是:

1)

$data = $_POST['data'];
$data = iconv("UTF-8","UCS-2LE",$data);

我在记事本++中打开它的结果是没有字节顺序掩码的UCS-2 LE。

2)

$data = $_POST['data'];
$data = mb_convert_encoding($data,"UTF-16LE","UTF-8");

结果与1)相同

如果我在UTF-16LE中用notepad ++手动编码,我得到了完美的结果。

如何让PHP为UTF-16数据添加字节顺序掩码?

1 个答案:

答案 0 :(得分:3)

如果您需要BOM,则必须手动添加。对于小端,它是FFFE。所以

$data = $_POST['data'];
$data = "\xFF\xFE".iconv("UTF-8","UCS-2LE",$data);

应该做的伎俩...

来源:Wikipedia