当前位置: 首页 > 知识库问答 >
问题:

Base64使用ISO-8859-1字符集解码字符串,并将其保存到NSData中

松安民
2023-03-14

这就是我现在拥有的:

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);
}

我认为没有。

共有1个答案

郎意
2023-03-14

我不熟悉NSData,但文档似乎没有表明您可以这样做。

不过,您可以用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)
 类似资料:
  • 在我的nodeJS应用程序中,我使用以下代码行获取req。身体 这工作正常,但对我的应用程序的一个请求会引发以下错误: 如果删除前一行,则该行适用于该请求,但在所有其他请求中,我无法检索数据。有办法解决这个问题吗?

  • 问题内容: 我正在开发一个项目,我们需要将我们的信息保存在具有ISO-8859-1表的旧数据库中。因此,在向数据库中写入内容之前,我需要将其从UTF-8转换为ISO-8859-1,并且每次从数据库中检索到它时,都需要将其转换回UTF-8。 我试图将库 **code.google.com/p/go-charset/** 用作以下每个我需要保留的文本字段。 问题是即使使用 toISO88591 函数,

  • 问题内容: 我有ISO-8859-1数据库,所以我希望完全在此代码页中交换请求。那么,如何以正确的方式设置AJAX请求的内容类型呢? 问题答案: 即使这样做很不好(上面有很多评论),也可以:

  • 来自java。lang.StringCodeing: 这就是从Java.lang.getBytes()中使用的,在linux jdk 7中,我一直认为UTF-8是默认字符集? 谢啦

  • 问题内容: 我正在iOS(7)的科学方面实现JSON Web令牌认证。运行良好。我的应用程序接收令牌,并可以使用它们对我的服务器进行身份验证的调用。 现在,我希望我的客户端代码检查令牌上的过期日期,以便它可以知道何时重新进行身份验证。检查JWT身份验证令牌上的到期日期很简单。授权令牌是3个base64编码的JSON Blob,由’。’分隔。-过期时间戳记在中间的Blob中,称为。距Unix时代已秒