Question

I have to show the textview text smily in UILabel.

In the UILabel -

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

its showing properly.

In UITextView -

I tried to convert UITextView text in string and then log is -

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

How to encode which i can show in UILabel, anybody please suggest me.

Was it helpful?

Solution 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 OR HIGHER

    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 OR HIGHER

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

OTHER TIPS

You can use ⌃ ⌘ Space shortcut to show the symbols panels and just insert the emoji you're looking for directly without unicode:

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

(just copy the code above to Xcode if you browser doesn't show the emoji)

On Xcode version 7.2.1, You can use the below shortcut to show the symbols panels and insert the emoji:

shortcut: (pressed the below three keys together)

Ctrl Command Space

Swift 3.0 solution update given by @Bhavesh Nayi

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

and Send it to Chat Server as a

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

and Then Show emoji to UILablel

In case of swift 2.3 or lower

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

In Case of Swift 3.0 or higher

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)
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top