转义为iOS的Unicode字符

我想在我的应用程序中使用一些Unicode安排。 我有麻烦逃脱他们的使用。

比如这个Unicode序列:🅰

如果我使用在线工具转义它,我会得到:\ ud83c \ udd70

但是,这当然是每个编译器的无效序列:

var str = NSString.stringWithUTF8String("\ud83c\udd70") 

另外,如果我这样做:

 var str = NSString.stringWithUTF8String("\ud83c") 

我收到一个错误“无效的Unicode标量”

我试图使用这些Unicode“字体”: http : //www.panix.com/~eli/unicode/convert.cgi? text= abcdefghijklmnopqrstuvwxyz

如果我查看这个网站的来源,我看到这样的序列:

 &#x1D552 

奋力围绕什么是“正确”的方式来处理/退出unicode。

只需要找出一种方法让他们在iOS上工作。

有什么想法吗?

Swift是一个早期的Beta版本,在很多方面都被打破了。 这个问题是一个Swift错误。

 let ringAboveA: String = "\u0041\u030A" is Å and is accepted let negativeSquaredA: String = "\uD83D\uDD70" is 🅰 and produces an error 

在这里输入图像说明

两者都是被Objective-C接受的分解的UTF16字符。 不同之处在于组合字符🅰在平面1中。

注意:要获得UTF32代码点,可以使用OSX字符查看器或代码片段:

 NSLog(@"utf32: %@", [@"🅰" dataUsingEncoding:NSUTF32BigEndianStringEncoding]); 

utf32:<0001f170>

要获取Apple菜单中的字符查看器,请转至“系统预置”,“键盘”,“键盘”选项卡,然后选中“在菜单栏中显示键盘和字符查看器”checkbox。 “angular色视图”项目将位于date左侧的菜单栏中。

在这里输入图像说明

input字符右(控制)后,点击collections夹中的字符复制search结果。

复制的信息:
🅰
负格拉丁大写字母A
Unicode:U + 1F170(U + D83C U + DD70),UTF-8:F0 9F 85 B0

更好的是:在左边的列表中添加unicode并select它。
在这里输入图像说明

\ud83c\udd70是一个编码Unicode字符UT(U + 1F170)的UTF-16代理对。 Swiftstring文字不使用UTF-16,所以转义序列没有意义。 但是,由于1F170有五位数字,所以不能使用\uXXXX转义序列(它只接受四个hex数字)。 相反,使用\UXXXXXXXX序列(注意大写的U ),它接受八个:

 var str = "\U0001F170" // returns "🅰" 

您也可以将字符本身粘贴到您的string中:

 var str = "🅰" // returns "🅰"