【发布时间】:2011-02-04 19:33:50
【问题描述】:
我正在使用 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?
【问题讨论】:
标签: objective-c cocoa-touch utf-8 byte-order-mark