创建带有 BOM 的 UTF-8 字符串
我使用 MD5 函数和 Base64 编码来生成用户密钥(用于登录所用 API 的数据层)
我在 javascript 很好,但是在 Objective C 中,我在 BOM 上苦苦挣扎,
我的代码是:
NSString *str = [[NSString alloc]
initWithFormat:@"%@%@%@%d",
[auth uppercaseString],
[user uppercaseString],
[pwd uppercaseString],
totalDaysSince2000];
NSString *sourceString = [[NSString alloc] initWithFormat:@"%02x%02x%02x%@",
0xEF,
0xBB,
0xBF,
str];
NSString *strMd5 = [sourceString MD5];
NSData *sourceData = [strMd5 dataUsingEncoding:NSUTF8StringEncoding];
NSString *base64EncodedString = [[sourceData base64EncodedString] autorelease];
使用上面的代码,我进入了内存:
(来源:balexandre.com)
女巫不是我真正需要的...
我什至尝试过但
"%c%c%c%@", (char)239, (char)187, (char)191, str
没有运气...
使用 UTF8String
并不像 C# 那样自动附加 BOM :-(
如何正确附加 BOM ?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
尝试将 BOM 作为转义字符直接嵌入到格式字符串中:
Try embedding the BOM directly in the format string as escaped character literals:
您可能必须将 BOM 添加到 NSData 对象,而不是 NSString。像这样的东西:
You might have to add the BOM to the NSData object, not the NSString. Something like this:
我在使用 Swift 和在 Excel 中打开 CSV 时遇到了类似的问题。
这个问题也对我有很大帮助。
快速使用 CSV 文件的简单解决方案:
I had similar issue with Swift and opening CSV fime in Excel.
This question also helped me a lot.
Simple solution for swift with CSV file: