如何用Swift字符串中的描述替换表情符号字符

Cue*_*Cue 4 string xcode emoji swift

我正在寻找一种方法来用Swift字符串中的描述替换表情符号字符.

例:

输入 "This is my string "

我想替换以获取:

产量 "This is my string {SMILING FACE WITH OPEN MOUTH AND SMILING EYES}"

到目前为止,我正在使用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}
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

luk*_*302 7

Character首先不要使用a ,而是使用String输入:

let cfstr = NSMutableString(string: "This  is my string ") as CFMutableString
Run Code Online (Sandbox Code Playgroud)

这将最终输出

这个{露出嘴巴和微笑的笑脸}是我的字符串{SMING FACE WITH OPEN MOUTH AND SMILING EYES}

放在一起:

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 ")
Run Code Online (Sandbox Code Playgroud)