gpt4 book ai didi

iphone - 将 BOM 与文件一起保存

转载 作者:行者123 更新时间:2023-12-03 21:19:17 27 4
gpt4 key购买 nike

有人可以告诉我如何用文件保存字节顺序标记(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的理解是:

The BOM character is the "ZERO WIDTH NO-BREAK SPACE" character, U+FEFF, in the Unicode character set.

我有一个 iPhone 应用程序,允许用户将文本保存到 RTF 文件。如果我使用 NSUTF8StringEncoding 一切正常,除非用户有双字节字符,例如日语或中文。简单的答案似乎是使用 NSUTF16StringEncoding 保存文件,这在最新的 RTF 规范中是允许的,但 Microsoft Word 只能在定义了 BOM 的情况下自动打开 UTF-16 文件。

我的希望是,如果我可以设置通用 BOM,我就不需要识别用户的字符集,因为我无法提前知道它是什么。但他们仍然能够打开带有双字节字符的 RTF 文件。

感谢您的建议或见解。

最佳答案

如果你先将字符串转换为数据,然后将数据写入文件,那么 NSString 的 dataUsingEncoding:allowLossyConversion: 将为你添加 BOM。您可以按如下方式编写文件:

NSData *data = [currentFileContent dataUsingEncoding:NSUTF16StringEncoding];
[data writeToFile:filePath options:NSDataWritingAtomic error:&error];

关于iphone - 将 BOM 与文件一起保存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6460594/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com