【问题标题】:NSString.toString returns null-terminated stringNSString.toString 返回以空字符结尾的字符串
【发布时间】:2018-10-04 10:44:18
【问题描述】:

在 Nativescript 中,我有一个使用 NSString 方法的插件,我想返回一个 javascript 字符串。如果我运行 nsstringInstance.toString() 我会得到一个以 null 结尾的 javascript 字符串。我可以通过从字符串末尾删除所有 \0 字符来解决它。有没有更好的方法?

function base64_decode(base64string) {
    let nsdata = NSData.alloc().initWithBase64EncodedStringOptions(base64string, opts);
    return NSString.alloc().initWithDataEncoding(nsdata, NSUTF8StringEncoding).toString();
}

我可以用这个来解决这个问题

let decoded = base64_decode("SOME BASE64 STRING").replace(/\0+$/,'');

这是唯一的方法,还是有一个 NSString 方法来返回非空终止的 UTF-8 字符串?

【问题讨论】:

    标签: ios nsstring nativescript null-terminated


    【解决方案1】:

    .toString() 不是NSString 实例中的有效方法。试试.UTF8String

    【讨论】:

    • .toString 在 NativeScript 中可用(因为 toString 在所有 JS 对象上都可用)。 UTF8String 会返回一个没有空终止符的 javascript 字符串吗?
    • 我的第一次尝试是没有 toString 调用,它返回了一个 NSString 实例,它不能用于 javascript 的字符串函数(我想在解码后将它发送到 JSON.parse)。 JSON.decode 包含最后一个字符,它是一个空字节 (\0)
    猜你喜欢
    • 2017-12-05
    • 1970-01-01
    • 1970-01-01
    • 2011-06-06
    • 1970-01-01
    • 1970-01-01
    • 2013-04-07
    • 2010-12-23
    • 1970-01-01
    相关资源
    最近更新 更多