重音字母和表情符号
Accented letters and emojis
我需要 encode/decode 表情符号,我正在使用此代码
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 [=10=].isEmoji else { return String([=10=]) }
let data = String([=10=]).data(using: .nonLossyASCII, allowLossyConversion: true)!
return String(data: data, encoding: .ascii)!
}.joined()
print(encoded) // abcdřšá\ud83d\ude03\ud83d\ude03\ud83d\ude03
使用 中的 isEmoji
方法。
我需要 encode/decode 表情符号,我正在使用此代码
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 [=10=].isEmoji else { return String([=10=]) }
let data = String([=10=]).data(using: .nonLossyASCII, allowLossyConversion: true)!
return String(data: data, encoding: .ascii)!
}.joined()
print(encoded) // abcdřšá\ud83d\ude03\ud83d\ude03\ud83d\ude03
使用 isEmoji
方法。