我使用MD5功能和BASE64编码,以产生一个用户秘密(用于登录到所使用的API的数据层)

我没有在代码的JavaScript 和它的优良,但在目标C我“M与BOM strugling

我的代码是:

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];  

使用上述我进入存储器中的代码:

“ALT文本” 结果 <子>(来源: balexandre.com

女巫是不是我真正需要的...

我即使试图

"%c%c%c%@", (char)239, (char)187, (char)191, str

,没有运气...

使用UTF8String不缝自动追加BOM作为C#: - (

如何正确地追加BOM?

有帮助吗?

解决方案

尝试直接在格式串嵌入BOM为转义字符文字:

NSString *sourceString = [[NSString alloc] initWithFormat:@"\357\273\277%@", str];

其他提示

您可能必须将BOM添加到NSData对象,而不是NSString的。是这样的:

char BOM[] = {0xEF, 0xBB, 0xBF};
NSMutableData* data = [NSMutableData data];
[data appendBytes:BOM length:3];
[data appendData:[strMd5 dataUsingEncoding:NSUTF8StringEncoding]];

我和斯威夫特和在Excel中打开CSV FIME类似的问题。 这个问题也帮了我不少。

用于与CSV文件迅速简单的解决方案:

let BOM = "\u{FEFF}"
csvFile.append(BOM)
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top