作者热门文章
- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我正在尝试在各种项目中显示一个字符串,例如 UIlabel、UItextview、Uitextfield 等.....我正在尝试以这样的方式来做这件事
NSData *data1 = [title dataUsingEncoding:NSUTF8StringEncoding];
NSString *goodValue = [[NSString alloc] initWithData:data1 encoding:NSNonLossyASCIIStringEncoding];
label.text=goodvalue;
这有时对我有用,但有时它会为这样的字符串返回空值关于这个?
最佳答案
表情符号字符位于 unicode 平面 1 中,因此需要超过 16 位来表示一个代码点。因此,两种 UTF8 表示或一种 UTF32 表示。 Unicode 实际上是一个 21 位系统,对于平面 0 字符(基本上除了表情符号之外的所有字符)16 位就足够了,我们使用 16 位来获得。表情符号需要超过 16 位。
“Youtube\ud83d\ude27\ud83d\ude2e\ud83d\ude2f\ud83d”
。无效,它是 utf16 unicode 转义字符串的一部分,最后一个 \ud83d
是表情符号字符的 1/2。
此外,为了创建带有转义字符“\”的文字字符串,转义字符必须转义:“\\”。
NSString *emojiEscaped = @"Youtube\\ud83d\\ude27\\ud83d\\ude2e\\ud83d\\ude2f";
NSData *emojiData = [emojiEscaped dataUsingEncoding:NSUTF8StringEncoding];
NSString *emojiString = [[NSString alloc] initWithData:emojiData encoding:NSNonLossyASCIIStringEncoding];
NSLog(@"emojiString: %@", emojiString);
NSLog 输出:
emojiString: Youtube😧😮😯
emoji字符串也可以用utf32表示:
NSString *string = @"\U0001f627\U0001f62e\U0001f62f";
NSLog(@"string: %@", string);
NSLog 输出:
string1: 😧😮😯
关于ios - 如何在UIlabel 和UItextview 中显示emoji 和特殊字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23909856/
我是一名优秀的程序员,十分优秀!