String 如何在Swift字符串中包含表情符号?
是一篇很好的文章,它引用了iOS表情符号及其代码。例如,小型摄像机的String 如何在Swift字符串中包含表情符号?,string,swift,nsstring,String,Swift,Nsstring,是一篇很好的文章,它引用了iOS表情符号及其代码。例如,小型摄像机的\ue008 我在代码中尝试了这一点: var myText: String = "\ue008" Xcode不接受这一点。如何包含它?来自swift文档: let dollarSign = "\u{24}" // $, Unicode scalar U+0024 let blackHeart = "\u{2665}" // ♥, Unicode scalar U+2665 let sparklin
\ue008
我在代码中尝试了这一点:
var myText: String = "\ue008"
Xcode不接受这一点。如何包含它?来自swift文档:
let dollarSign = "\u{24}" // $, Unicode scalar U+0024
let blackHeart = "\u{2665}" // ♥, Unicode scalar U+2665
let sparklingHeart = "\u{1F496}" // You could insert the emoji directly using ⌘ ^ Space
.
Or, based on Greg's answer:
var myText: String = "\u{e008}"
let dollarSign=“\u{24}”//$,Unicode标量u+0024
让blackHeart=“\u{2665}”//♥, Unicode标量U+2665
让SparkingHeart=“\u{1F496}”//您可以使用⌘ ^ 空格
或者,根据格雷格的回答:
cell.textLabel?.text = "❤️" + " \(liker) liked \(userBeingliked)'s photo"
您根本不需要unicode常量。只需使用字符查看器并直接键入字符 如果我了解您的目标,那么:
在XCode中按“ctrl+cmd+space”。“红心”表情符号的示例用法
extension String {
var decodeEmoji: String{
let data = self.data(using: String.Encoding.utf8);
let decodedStr = NSString(data: data!, encoding: String.Encoding.nonLossyASCII.rawValue)
if let str = decodedStr{
return str as String
}
return self
}
}
正如格雷格在上面所说,您可以使用OSx字符查看器将表情符号直接输入Swift。默认情况下,角色查看器处于禁用状态。以下是如何启用它:
转到系统首选项>语言和地区>键盘首选项>键盘,然后选中菜单栏中的显示键盘、表情符号和符号查看器。选中后,您可以从Wifi和日期/时间图标旁边的右上菜单栏打开字符查看器。1解码Unicode:
let decodedString = yourString.decodeEmoji
let encodedString = yourString.encodeEmoji
用法
extension String {
var encodeEmoji: String{
if let encodeStr = NSString(cString: self.cString(using: .nonLossyASCII)!, encoding: String.Encoding.utf8.rawValue){
return encodeStr as String
}
return self
}
}
let c = 0x1F602
2对Unicode编码:
let decodedString = yourString.decodeEmoji
let encodedString = yourString.encodeEmoji
用法
extension String {
var encodeEmoji: String{
if let encodeStr = NSString(cString: self.cString(using: .nonLossyASCII)!, encoding: String.Encoding.utf8.rawValue){
return encodeStr as String
}
return self
}
}
let c = 0x1F602
从十六进制“0x1F52D”到实际表情符号
let intEmoji = UnicodeScalar(c!).value
下一步可能会从你的十六进制中得到一个Uint32
titleLabel.text = String(UnicodeScalar(intEmoji)!)
从这里你可以做一些类似的事情
var myText: String = "\ue008"
这里有一个“Chris Slowik和Greg的答案很接近。
最简单的答案是从以下内容“重新表述”字符串:
var myText: String = "\u{008}"
为此:
func convertHexToEmoji(_ u:Int) -> String {
return "\(UnicodeScalar(u)!)" }
正如其他人所说,在您所连接的链接上找到的Unicode并没有错。您只需要在字符串中对其进行重新表述
上面示例中的重要代码是“008”部分
我创建了一个简单的函数,用于将这些类型的Unicode转换为相应的表情:
let myText = convertHexToEmoji(008)
print(myText)
使用:
var myText: String = "\u{e008}"
这花了我一点时间在MacOS 11中找到答案,所以我想我会与大家分享
如果您喜欢输入unicode字符而不是粘贴文字表情符号,您可以找到系统表情符号的unicode,如下所示:
聚焦/单击文本字段(例如web浏览器中的搜索栏)
按ctrl+cmd+space
或进入菜单栏中的Edit->Emoji&Symbols
在角色查看器中向上滚动,直到在右上角看到窗口展开图标:
在展开的“字符查看器”窗口中,按左上角按钮并选择自定义列表…
。
向下滚动至code Tables
最小化列表,展开列表,打开Unicode
,然后按Done
(系统出于任何原因将此窗口更改为暗模式)。
现在,单击不同的表情符号,您应该会看到图像下方的unicode。
然后将其注入unicode,如下所示:
Ue008是在私人使用区域。所以你不能期望太多。那篇“相当好的文章”似乎完全是垃圾。使用“角色查看器”“在Mac上获得正确的Unicode值。同上gnasher729-相当垃圾的文章。这里回答的问题是,他从一个网站获得的Unicode值只给出了不起作用的垃圾值。E008是个错误的号码。你是说ctrl+⌘ + 空格
?是的,这是另一种说法,即键盘快捷键可以在任何地方使用OSX。你能给我分享一下swift文档链接吗@Greg@R.Mohan请参阅tis链接“let c=0x1F602”此变量的数据类型是什么@梅赫迪S。