我想從二進制文件中解碼一些Unicode字符串。我知道他們被編碼爲UTF-16,他們有一個'big endian'BOM(0xFFFE)。但是當我試圖把它們變成一個字符串時,我最終得到了一堆中文字符。從字節數組創建NSString使用Swift語言生成錯誤的字符
var bytes:[UInt8] = [0x41, 0x00, 0x42, 0x00, 0x43, 0x00, 0x0E, 0xFE]
let text = NSString(bytes: &bytes, length: bytes.count, encoding:NSUTF16BigEndianStringEncoding)
print(text)
這打印的是中文字符和一個[?]而不是「ABC!︎」,這是我應該做的(我相信)。
我試過不同的編碼,但沒有任何工作正常。誰能幫忙?
這些字節是{A,B,C,變異SELECTOR-15}在UTF-16LE。 –