2016-10-09 4 views
0

, поэтому я пытаюсь преобразовать строку unicode U+1F600, исходящую из json в UILabel, но с адским временем.Swift 3 конвертировать строку unicode U + 1F600

Неужели кто-нибудь столкнулся с этим? Также кажется, что JSON входит в число \u1f600.

Я попробовал этот метод не повезло: Emoji characters cannot be encoded to JSON

Большое спасибо

+0

'U + 1F600' и' \ u1f600' не действительны в формате JSON , Можете ли вы показать, какую последовательность байтов вы получили? – OOPer

+0

Это может помочь: http://stackoverflow.com/a/32555223/1630618 – vacawama

ответ

1

Спасибо vacawama и Эдмар, и помог мне найти решение, которое было следующим:

if let unicode = definition["unicode"] as? String { 
    if let int = Int(unicode.replacingOccurrences(of: "U+", with: ""), radix: 16) { 
     if let scalar = UnicodeScalar(int) { 
      let string = String(scalar) 
      emoji.text = string 
     } 
    } 
} 
0

В своем ответе JSON, делает \u1f600 поставляется в виде строки? Если это так, попробуйте это:

let transform = "Any-Hex/Java" 
let input = "\\u1f600" as NSString 
var output = input.mutableCopy() as NSMutableString 

CFStringTransform(output, nil, transform as NSString, 1) 

println("output: \(output)")