问题
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.
回答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 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)!
回答2:
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)
回答3:
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
回答4:
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
回答5:
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)
来源:https://stackoverflow.com/questions/23670959/how-to-show-emoji-in-uilabel-ios