我正在寻找一种方法,用 Swift 字符串中的描述替换表情符号字符。
Example:
Input "This is my string ????"
我想替换 ???? 以获得:
Output "This is my string {SMILING FACE WITH OPEN MOUTH AND SMILING EYES}"
到目前为止,我正在使用从原始代码修改而来的代码MartinR 的这个回答 https://stackoverflow.com/a/24701154/2442804,但只有当我处理单个角色时它才有效。
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 ????")
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)