【问题标题】:How to convert string to unicode(UTF-8) string in Swift?如何在 Swift 中将字符串转换为 unicode(UTF-8) 字符串?
【发布时间】:2016-09-02 09:49:25
【问题描述】:

如何在 Swift 中将字符串转换为 unicode(UTF-8) 字符串?

在 Objective 我可以这样写:

NSString *str = [[NSString alloc] initWithUTF8String:[strToDecode cStringUsingEncoding:NSUTF8StringEncoding]];

如何在 Swift 中做类似的事情?

【问题讨论】:

  • 也许您可以在收到它时更改解码方式?喜欢stackoverflow.com/questions/31733254/…,是不是很像?
  • 谢谢,但它不适合我。简单地说,我需要将其转换为: let string = "аÑпаÑи пÑогÑали ÑÑÑбоÐ" 到这个 let result = "Карпати програли футбол" 。我用在线转换器转换为 Unicode(UTF-8)

标签: ios swift unicode utf-8 utf-16


【解决方案1】:

Swift 4 和 5 我创建了一个字符串扩展

extension String {
    func utf8DecodedString()-> String {
        let data = self.data(using: .utf8)
        let message = String(data: data!, encoding: .nonLossyASCII) ?? ""
        return message
    }
    
    func utf8EncodedString()-> String {
        let messageData = self.data(using: .nonLossyASCII)
        let text = String(data: messageData!, encoding: .utf8) ?? ""
        return text
    }
}

【讨论】:

  • 您在第二个函数中缺少一个“c”(您编写了 fun utf8EncodedString())
  • @JoshO'Connor 谢谢!!
【解决方案2】:

斯威夫特 4:

let str = String(describing: strToDecode.cString(using: String.Encoding.utf8))

【讨论】:

    【解决方案3】:

    使用此代码,

    let str = String(UTF8String: strToDecode.cStringUsingEncoding(NSUTF8StringEncoding))
    

    希望对你有帮助

    【讨论】:

    • 谢谢,但这种方式确实解决了我的问题。我以前喜欢的不是拉丁符号显示不正确:-(
    • 我有一个这样的字符串:“@ Rock-ЦиѰÑа: Deep Purple”,带有 unicode 符号(西里尔字母等)。当我使用在线转换器到 Unicode(UTF-8) 时,我可以将其转换为:“@ Rock-Цитата: Deep Purple” 问题是:如何在 Swift 中做到这一点?
    • 简单地说,我需要将其转换为: let string = "ÐаÑпаÑи пÑогÑали ÑÑÑбоÐ" 至此 let result = "Карпати програли футбол" .我用在线转换器转换为 Unicode(UTF-8)
    • 什么是在线转换器请在此提及,从什么格式转为 UTF-8 请同时提及这两种格式
    • let cString = qString.cString(using: String.Encoding.utf8)
    猜你喜欢
    • 2010-09-21
    • 1970-01-01
    • 2012-07-02
    • 2021-07-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-14
    • 2012-06-25
    相关资源
    最近更新 更多