消息:支持Android和iOS之间的Emijo

时间:2016-12-16 10:42:54

标签: android ios unicode swift2

我正在创建一个应用程序,用于将消息从一个用户发送给另一个用户。

此应用程序是在Android和iOS(swift 2.2)中开发的。

在Android中,我使用org.apache.commons使用StringEscapeUtils.escapeJavaStringEscapeUtils.unescapeJava将字符串编码/解码为Unicode 编码方法给了我这个结果(对于包含表情符号的字符串):

Hello \uD83E\uDD23

这在Swift中无法解码。

根据这个post,我认为iOS需要这个String作为输入才能正确解码它:

Hello \u{D83E}\u{DD23}

是否有一种简单的方法可以兼容iOS和Android?

1 个答案:

答案 0 :(得分:1)

找到解决方案:

static func decode(input: String) -> String? {
    let ns = NSString(string: input)
    let data:NSData = ns.dataUsingEncoding(NSUTF8StringEncoding)!

    return NSString(data:data,encoding:NSNonLossyASCIIStringEncoding) as? String
}