【问题标题】:How to show Emoji in UILabel iOS如何在 UILabel iOS 中显示 Emoji
【发布时间】:2014-05-15 06:39:51
【问题描述】:

我必须在 UILabel 中显示 textview 文本。

UILabel -

lbl.text = @"Happy to help you \U0001F431;

它正确显示。

UITextView -

我尝试将 UITextView 文本转换为字符串,然后日志为 -

%F0%9F%99%88%F0%9F%99%89%F0%9F%99%8A

如何编码,我可以在UILabel 中显示,任何人请建议我。

【问题讨论】:

  • 嘿@Arun Sharma 检查我更新的答案。,,,

标签: objective-c ios7 uilabel emoji


【解决方案1】:

您可以使用⌃ ⌘ Space 快捷方式显示符号面板,然后直接插入您要查找的表情符号,无需 unicode:

lbl.text = @"Happy to help you ?";

(如果您的浏览器不显示表情符号,只需将上面的代码复制到 Xcode)

【讨论】:

  • 对于那些在我的键盘上使用不同键盘的人,它的 ⌘+ctrl+Space
【解决方案2】:
NSString *str = @"Happy to help you \U0001F431";

NSData *data = [str dataUsingEncoding:NSNonLossyASCIIStringEncoding];
NSString *valueUnicode = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];


NSData *dataa = [valueUnicode dataUsingEncoding:NSUTF8StringEncoding];
NSString *valueEmoj = [[NSString alloc] initWithData:dataa encoding:NSNonLossyASCIIStringEncoding];

_lbl.text = valueEmoj;

SWIFT - 3 或更高

    let str = "Happy to help you \U0001F431"

    let data : NSData = str.dataUsingEncoding(NSNonLossyASCIIStringEncoding)!
    let valueUnicode : String = String(data: data, encoding: NSUTF8StringEncoding)!

    let dataa   : NSData = valueUniCode.dataUsingEncoding(NSUTF8StringEncoding)!
    let valueEmoj : String = String(data: dataa, encoding: NSNonLossyASCIIStringEncoding)!

SWIFT - 4 或更高

    let str = "Happy to help you \U0001F431"

    let data : NSData = str.dataUsingEncoding(NSNonLossyASCIIStringEncoding)!
    let valueUnicode : String = String(data: data as Data, encoding: String.Encoding.utf8)!

    let dataa   : NSData = valueUnicode.data(using: String.Encoding.utf8)! as NSData
    let valueEmoj : String = String(data: dataa as Data, encoding: String.Encoding.nonLossyASCII)!

【讨论】:

  • 让我试试,如果它有效。在返回 null 之前。
  • 嗨 Bhavesh,您知道我如何转换为十六进制吗?
  • @gstream79 请在此处打印您的字符串
【解决方案3】:

在 Xcode 版本 7.2.1 上, 您可以使用以下快捷方式显示符号面板并插入表情符号:

快捷方式: (同时按下以下三个键)

Ctrl Command Space

【讨论】:

    【解决方案4】:

    Swift 3.0 解决方案@Bhavesh Nayi 提供的更新

        let data =  txtMessage.text!.data(using: .nonLossyASCII)
        let emojiString = String.init(data: data!, encoding: .utf8)
    

    并将其作为聊天服务器发送到

        let data = message.message.data(using: .utf8)
        let emoji = String.init(data: data!, encoding: .nonLossyASCII)
    

    然后将表情符号显示到 UILablel

    【讨论】:

      【解决方案5】:

      如果是 swift 2.3 或更低版本

      let textViewData : NSData = textViewString.dataUsingEncoding(NSNonLossyASCIIStringEncoding)!
      let valueUniCode : String = String(data: textViewData, encoding: NSUTF8StringEncoding)!
      
      let emojData   : NSData = valueUniCode.dataUsingEncoding(NSUTF8StringEncoding)!
      let emojString : String = String(data: emojData, encoding: NSNonLossyASCIIStringEncoding)!
      

      如果是 Swift 3.0 或更高版本

      let textViewData = textViewString.data(using: .nonLossyASCII)
      let valueUniCode = String.init(data: textViewData!, encoding: .utf8)!
      
      let emojData   = valueUniCode.data(using: .utf8)
      let emojString = String.init(data: emojData, encoding: .nonLossyASCII)
      

      【讨论】:

        猜你喜欢
        • 2016-01-10
        • 2016-02-22
        • 1970-01-01
        • 1970-01-01
        • 2017-07-12
        • 2012-05-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多