我需要编码/解码表情符号,我正在使用这个代码
var encodeEmoji: String{
if let encodeStr = NSString(cString: self.cString(using: .nonLossyASCII)!, encoding: String.Encoding.utf8.rawValue){
return encodeStr as String
}
return self
}
对于表情符号,一切都很好,但是当我编码重音字母(æ, ø, å)时,我有这样的东西 \346,\370,\345 谁能帮助避免转换重音字母,或者说我做错了什么。提前致谢!
最佳答案
一种方法是分别对每个字符进行编码,检测表情符号:
let testString = "abcdřšá😃😃😃"
let encoded = testString.unicodeScalars
.map {
guard $0.isEmoji else { return String($0) }
let data = String($0).data(using: .nonLossyASCII, allowLossyConversion: true)!
return String(data: data, encoding: .ascii)!
}.joined()
print(encoded) // abcdřšá\ud83d\ude03\ud83d\ude03\ud83d\ude03
使用来自 this answer 的 isEmoji
方法.
关于swift - 重音字母和表情符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48808859/