尝试在 Swift 中打印表情符号时打印的额外 unicode



当我尝试像这样打印表情符号时:

print("Incomplete frame ⚠️")

有时它在调试器中打印为:

Incomplete frame ⚠⚠357️

这个也是如此:

print("Frame not ready  💤")

有时会(但并非总是如此!(显示:

Frame not ready  360237222💤

或者,更糟糕的是,像

Frame not ready  360237360237360237222💤

为什么会这样?我该如何预防?

你必须将 Unicode 字符串转换为属性字符串,请在下面使用这个 字符串扩展名

extension String
    func UnicodeToAttributed() -> NSAttributedString? {
        do {
            let data = self.data(using: String.Encoding.utf8, allowLossyConversion: true)
            if let d = data {
                let str = try NSAttributedString(data: d,
                                                 options: [ 
                           NSCharacterEncodingDocumentAttribute: String.Encoding.utf8.rawValue], 
                                                 documentAttributes: nil)
                return str
            }
        } catch {
        }
        return nil
    }
}

最新更新