如何在SWIFT字符串中用表情符号的描述替换表情符号 [英] How to replace emoji characters with their descriptions in a Swift string
本文介绍了如何在SWIFT字符串中用表情符号的描述替换表情符号的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在寻找一种方法,将表情符号字符替换为SWIFT字符串中的描述。
示例:
输入
"This is my string 😄"
我想更换😄以获取:
输出
"This is my string {SMILING FACE WITH OPEN MOUTH AND SMILING EYES}"
到目前为止,我使用的代码是从this answer by MartinR的原始代码修改而来的,但它只有在处理单个字符时才起作用。
let myCharacter : Character = "😄"
let cfstr = NSMutableString(string: String(myCharacter)) as CFMutableString
var range = CFRangeMake(0, CFStringGetLength(cfstr))
CFStringTransform(cfstr, &range, kCFStringTransformToUnicodeName, Bool(0))
var newStr = "(cfstr)"
// removing "N" from the result: N{SMILING FACE WITH OPEN MOUTH AND SMILING EYES}
newStr = newStr.stringByReplacingOccurrencesOfString("\N", withString:"")
print("(newStr)") // {SMILING FACE WITH OPEN MOUTH AND SMILING EYES}
如何实现此目标?
推荐答案
首先不要使用Character
,而是使用String
作为输入:
let cfstr = NSMutableString(string: "This 😄 is my string 😄") as CFMutableString
这将最终输出
这张{张嘴微笑的眼睛}是我的弦{张嘴微笑眼睛微笑的脸}
汇总:
func transformUnicode(input : String) -> String {
let cfstr = NSMutableString(string: input) as CFMutableString
var range = CFRangeMake(0, CFStringGetLength(cfstr))
CFStringTransform(cfstr, &range, kCFStringTransformToUnicodeName, Bool(0))
let newStr = "(cfstr)"
return newStr.stringByReplacingOccurrencesOfString("\N", withString:"")
}
transformUnicode("This 😄 is my string 😄")
这篇关于如何在SWIFT字符串中用表情符号的描述替换表情符号的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文