gpt4 book ai didi

c# - Base64 解码带有 ISO-8859-1 字符集的字符串并将其保存到 NSData

转载 作者:行者123 更新时间:2023-11-28 19:47:10 24 4
gpt4 key购买 nike

这就是我现在拥有的:

documentData = new NSData (document.String, NSDataBase64DecodingOptions.None);

这确实有效,但 NSData 似乎使用 UTF-8 作为输出字符集。但我需要 ISO-8859-1 输出字符集中的数据才能获得正确的解码。默认的 (UTF-8) 失败。

NSData 有选项吗?还是我必须用 C# 转换它?

编辑:

我可以假设 ASCII 是 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,但是 docs似乎并未表明您可以执行此操作。

不过,您可以在 C# 中进行转换:

var isoBytes = Convert.FromBase64String(document.String);
var utf8Bytes = Encoding.Convert(Encoding.GetEncoding("iso-8859-1"),
Encoding.UTF8, isoBytes);

看起来您可以从工厂方法初始化 NSData:

var nsData = NSData.FromArray(utf8Bytes);

或者将其转换为base64并使用构造函数:

var base64 = Convert.ToBase64String(utf8Bytes);
var nsData = new NSData(base64, NSDataBase64DecodingOptions.None)

关于c# - Base64 解码带有 ISO-8859-1 字符集的字符串并将其保存到 NSData,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31455532/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com