2014-05-24 32 views
0

我得到了一個PHP,它通過我的Javascript在POST中接收數據,並且我想將這些數據寫入一個CSV文件。我需要用UTF-16LE編碼這個文件。在PHP中使用字節順序掩碼(BOM)以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與記事本++我得到了完美的結果。

如何讓PHP將字節順序掩碼添加到UTF-16數據?

回答

3

如果你想要一個BOM,你必須手動添加它。對於小端,它是FFFE。所以

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

應該做的伎倆......

來源:Wikipedia

+0

哇感謝邁克爾!它的工作方式正是我想要:)) – user3214296

+0

謝謝,我的Excel CSV與UTF-8完美工作。字節預留爲UTF-8-BOM「」\ xEF \ xBB \ xBF「' – JensV