Как показать Emoji в UILabel iOS

Я должен показывать текстовый текст в UILabel.

В UILabel -

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

его показ правильно.

В UITextView -

Я пытался преобразовать текст UITextView в строку, а затем журнал -

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

Как кодировать, что я могу показать в UILabel, кто-нибудь, пожалуйста, предложите мне.

Ответы

Ответ 1

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)!

Ответ 2

Вы можете использовать ⌃ ⌘ Space ярлык, чтобы отображать панели символов и просто вставлять emoji, который вы ищете напрямую без юникода:

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

(просто скопируйте приведенный выше код в Xcode, если браузер не показывает emoji)

Ответ 3

В версии Xcode 7.2.1, Вы можете использовать приведенный ниже ярлык, чтобы показать панели символов и вставить emoji:

Ярлык: (нажатие на три клавиши вместе)

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)

и затем Показать emoji в UILablel

Ответ 5

В случае быстрого 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)