gpt4 book ai didi

快速将 UTF16 转换为 UTF8 并返回

转载 作者:搜寻专家 更新时间:2023-11-01 07:26:35 30 4
gpt4 key购买 nike

我正在使用 Swift 构建一个应用程序,我正在使用 Backendless 作为我的后端。原来他们的数据库是 UTF8,因此如果不先转换字符串我就无法保存表情符号。我似乎找不到将此转换为 UTF8 的正确方法。我试过这个:

let encoding = processedText.stringByAddingPercentEscapesUsingEncoding(NSUTF8StringEncoding)

但是在这个操作之后表情符号看起来像这样:%F0%9F%99%84%F0%9F%98%80%F0%9F%98%92%F0%9F%98%89%F0%9F%98%B6%F0%9F%98%B6%F0 %9F%98%80%F0%9F%99%81

我试过这个: class func stringToUTF8String (string: String) -> 字符串? {

    let encodedData = string.dataUsingEncoding(NSUTF8StringEncoding)!
let attributedOptions = [NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType]
do{
let attributedString = try NSAttributedString(data: encodedData, options: attributedOptions, documentAttributes: nil)
return attributedString.string
}catch _ {
}

return nil
}

表情符号看起来像这样:🤔🤔👅ðŸ™ðŸ∼‚ðŸ∼ðŸ∼ŽðŸ∼‰ðŸ∼…ðŸ∼‰

有人有什么建议吗?谢谢

最佳答案

首先,使用您使用的 utf8 编码从 NSData 创建一个 String

String(data: theData, encoding: NSUTF8StringEncoding)

其次,swift 字符串已经兼容 unicode。您不必转换它们,因为它们已经这样做了。您可以访问具有各自属性的不同编码,例如String.utf8String.utf16等。

第三,要使 NSAttributedString 正确地使用 utf8 编码来自数据的字符串,您必须将 NSCharacterEncodingDocumentAttribute 键添加到 attributedOptions 字典中,值为 NSUTF8StringEncoding .

最后的说明,我不知道这是否是部分方法,但属性字符串不应仅用于对字符串进行编码。


这是 NSAttributedString 以某种格式对数据进行编码,返回乱码。 enter image description here

这是 NSAttributedString 将数据编码为 utf8 并返回正确的文本。 enter image description here

这里是将字符串编码为 utf8 字符串。 enter image description here


我知道这是一张图片,但我希望显示结果。如果这些不起作用,则数据库可能正在剥离位。这很糟糕,也不知道该怎么做,如果你想要 unicode 支持,你可能不应该使用该数据库。

关于快速将 UTF16 转换为 UTF8 并返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35713551/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com