有人能告訴我如何用文件保存字節順序標記(BOM)嗎?比如,我保存的文本文件,現在想:將BOM保存到文件
NSString *currentFileContent = @"This is a string of text to represent file content.";
NSString *currentFileName = @"MyFileName";
NSString *filePath = [NSString stringWithFormat:@"%@/%@.%@", [self documentsDirectory], currentFileName, rtf];
[currentFileContent writeToFile:filePath atomically:YES encoding:NSUTF16StringEncoding error:&error];
我的BOM的理解是:
的BOM字符是 「零寬度 NO-BREAK SPACE」 的字符,U + FEFF,在 的Unicode字符集。
我有一個iPhone應用程序,允許用戶將文本保存到RTF文件。所有工作正常,如果我使用NSUTF8StringEncoding,除非用戶具有雙字節字符,如日語或中文。簡單的答案似乎是使用NSUTF16StringEncoding保存文件,該文件在更新的RTF規範中允許使用,但Microsoft Word只能在定義了BOM時自動打開UTF-16文件。
我的希望是,如果我可以設置一個通用的BOM,我不需要識別用戶的字符集,因爲我無法預先知道這是什麼。但他們仍然能夠打開雙字節字符的RTF文件。
感謝您的建議或意見。
只需在數據前加上0xFEFF(兩個字節)? – 2011-06-23 21:16:01