我正在使用50%iOS和50%Microsoft.NET C#的系統。系統中使用的主要ID是Guids/NSUUID,並且它們會不時地轉換爲Base64字符串。我在.NET和iOS如何執行base64轉換方面存在差異。iOS和.NET之間的Base64編碼差異
這是我的目標c代碼到NSUUID轉換(以字符串格式)到Base64字符串:
+(NSString*)getBase64IdFromGuidStringWithString:(NSString*)stringInGuidFormat
{
NSLog(@"stringInGuidFormat is %@",stringInGuidFormat);
NSUUID* nsuuid = [[NSUUID alloc] initWithUUIDString:stringInGuidFormat];
uuid_t uuid;
[nsuuid getUUIDBytes:uuid];
NSData* data = [NSData dataWithBytes:uuid length:16];
NSString* base64 = [data base64EncodedString];
NSLog(@"base64 is %@",base64);
return base64;
}
其中[數據base64EncodedString]是Matt Gallagher
禮貌和這裏是一個類似的在.NET C#方法做同樣的事情:
private string convertGuidStringToBase64(string elementAsString)
{
Guid isAsGuid = new Guid(elementAsString);
string base64 = Convert.ToBase64String(isAsGuid.ToByteArray());
return base64;
}
鑑於CBB2B719-D129-4051-B694-4204A6F6BE93的起始字符串值我有以下結果: 的iOS認爲的base64值y7K3GdEpQFG2lEIEpva +千瓦== C#認爲的base64值GbeyyynRUUC2lEIEpva +千瓦==
顯然,我有什麼不對!任何人都可以指出我的錯誤,並指出我正確的方向來解決它!
非常感謝。
'data'(在ObjC部分)和'isAsGuid.ToByteArray()'之間有區別嗎? – Dirk