问题描述
这是我现在已经:
documentData = new NSData (document.String, NSDataBase64DecodingOptions.None);
这不工作,但似乎是NSData的使用UTF-8作为输出的字符集。但我需要在ISO 8859的输出字符集的数据,以获得正确的解码。默认的(UTF-8)失败。
This does work, but it seems that NSData is using UTF-8 as output charset. But I need the data in ISO-8859-1 output charset to get the correct decoding. The default one (UTF-8) fails.
是否有一个选项的NSData code>还是必须将其与C#转换?
Is there an option for NSData
or do I have to convert it with C#?
编辑:
我可以假设ASCII是ISO-8859-1?
Can I assume that ASCII is ISO-8859-1?
public static string Base64Decode(string base64EncodedData) {
if (String.IsNullOrEmpty (base64EncodedData))
return null;
var base64EncodedBytes = System.Convert.FromBase64String(base64EncodedData);
return System.Text.Encoding.ASCII.GetString(base64EncodedBytes);
}
我不信。
推荐答案
我不熟悉的的NSData code>,而没有指示就可以做到这一点。
I'm not familiar with NSData
, but the docs don't seem to indicate you can do this.
您可以用C#转换,虽然:
You can convert in C#, though:
var isoBytes = Convert.FromBase64String(document.String);
var utf8Bytes = Encoding.Convert(Encoding.GetEncoding("iso-8859-1"),
Encoding.UTF8, isoBytes);
看起来你可以再初始化的NSData code>从工厂方法:
var nsData = NSData.FromArray(utf8Bytes);
或将其转换为base64和使用构造函数:
Or convert it to base64 and use the constructor:
var base64 = Convert.ToBase64String(utf8Bytes);
var nsData = new NSData(base64, NSDataBase64DecodingOptions.None)
这篇关于Base64编码德code。与ISO-8859-1字符集的字符串,并将其保存到NSData的的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!