如何解码swift 3中的unicode字符?

时间:2016-12-08 06:20:34

标签: ios unicode utf-8 swift3 emoji

我正在开发一个聊天应用程序,因为除了之外一切正常。此应用程序适用于Android和iOS平台。我们想在聊天中传递表情符号。在android中,我们使用'\xe9'的UTF编码。它在android中完美运行。当我们传递表情符号enter image description here时,它被编码并存储在DB中,如#34; \ u263A"。

现在在android中这个字符串也是解码并在视图中显示完美,但有些我们无法在iOS中解码相同的字符串。我们只是尝试 使用UTF字符串解码。但它仍然无法正常工作。

我已经关注此链接Print unicode character from variable (swift)

提前致谢。

2 个答案:

答案 0 :(得分:5)

最简单的方法是使用CFStringTransform,如下所示。

let wI = NSMutableString( string: "\\u263a" )
CFStringTransform( wI, nil, "Any-Hex/Java" as NSString, true )
someUILabel.text = wI as String

答案 1 :(得分:5)

你应该试试这个:

例如:

let charString = "263A"
    if let charCode = UInt32(charString, radix: 16),let unicode = UnicodeScalar(charCode)
    {
        let str = String(unicode)
        print(str)
    }
    else
    {
        print("invalid input")
    }

如果要在Label / TextField上打印,请:

let charString = "263A"
if let charCode = UInt32(charString, radix: 16),let unicode = UnicodeScalar(charCode)
{
    let str = String(unicode)
    CharLabel.text = str             //Print on Label
    CharTextField.text = str         //Print on TextField
}
else
{
    print("invalid input")
}