2
我在Ruby中有一個UCS-2LE編碼字節數組,因爲這是我的完整開始與Ruby我努力將其轉換爲UTF-8字符串,我有相同的代碼在PHP & Java工作得很好。如何將UCS-2字節數組轉換爲Ruby中的UTF-8字符串?
在PHP中,我用iconv庫,但是在Ruby的iconv已被棄用:
$str = iconv('UCS-2LE', 'UTF-8//IGNORE', implode($byte_array));
在Java中我使用:
str = new String(byte_array, "UTF-16LE");
字節數組中被編碼爲2每1個字符的字節數,如何在Ruby中執行類似的轉換?我已經嘗試了一些解決方案,但它不適合我。謝謝。
你讀過http://stackoverflow.com/questions/1033104/how-do-i-convert-a-ucs2-string-into-utf8? –
'byte_array.pack(「C *」)。force_encoding(「UTF-16LE」)。encode(「UTF-8」)'應該可以工作 – Stefan
@Stefan它工作得很好,我建立數組將項目放置爲.chr類型,我已經刪除了.chr並添加了你的代碼,它工作的很好,有一件事我不明白,它是如何處理C *類型的,而文檔指出C是一個char(而不是寬字符)? –