如何在SWIFT字符串中用表情符号的描述替换表情符号 [英] How to replace emoji characters with their descriptions in a Swift string

查看:0
本文介绍了如何在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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆