objective-c - Xcode UTF-8 文字

标签 objective-c xcode unicode

假设我有 MUSICAL SYMBOL G CLEF 符号:** 𝄞 ** 我希望在我的 Objective-C 源文件中的字符串文字中。

OS X Character Viewer 表示 CLEF 在他们的术语中是 UTF8 F0 9D 84 9E 和 Unicode 1D11E(D834+DD1E)

经过一番摸索,并使用 t he ICU UNICODE Demonstration页面,我确实得到了以下代码:

NSString *uni=@"\U0001d11e";
NSString *uni2=[[NSString alloc] initWithUTF8String:"\xF0\x9D\x84\x9E"];
NSString *uni3=@"𝄞";
NSLog(@"unicode: %@ and %@ and %@",uni, uni2, uni3);

我的问题:

  1. 是否可以简化我处理 UTF-8 文字的方式?这对我来说似乎很笨拙。
  2. @"\U0001d11e 部分是 UTF-32 吗?
  3. 为什么从 Character Viewer 中剪切和粘贴 CLEF 确实有效?我以为 Objective-C 文件必须是 UTF-8?

最佳答案

  1. 我更喜欢你在 uni3 中做的方式,但遗憾的是那是 not recommended .如果做不到这一点,我更喜欢 uni 中的方法而不是 uni2 中的方法。另一种选择是 [NSString stringWithFormat:@"%C", 0x1d11e]
  2. 它是一个“通用字符名称”,在 C99(第 6.4.3 节)中引入,并从 OS X 10.5 开始导入到 Objective-C 中。从技术上讲,这不一定要为您提供 UTF-8(这取决于编译器),但实际上您可能会得到 UTF-8。
  3. 源代码文件的编码可能是 UTF-8,符合运行时的预期,因此一切正常。源文件也可能是 UTF-16 或 UTF-32,并且编译器在编译它时正在做正确的事情。尽管如此,Apple 并不推荐这样做。

关于objective-c - Xcode UTF-8 文字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5690172/

相关文章:

c++ - 从 C++ std::string& 获取 unichar * 以在 Objective-C++ 中创建非空 NSString

ios - 有没有更简洁的方法来编辑 UIView 框架的 4 个 CGRect 值中的 1 个?

ios - Xcode - Swift - TableViewCell 扩展中的 UILabel

c++ - 如何从excel中获取unicode字符串

mysql - VB.NET、MySQL 和 Unicode

javascript - 将 objective-c 变量传递给 ios 中的 javascript

ios - 继承和扩展框架类的问题

c - Xcode - 警告 : Implicit declaration of function is invalid in C99

ios - 应用程序和扩展 - 使用核心数据 == 错误 : sharedApplication()' is unavailable

java - 使用 Unicode 文本还是 Unicode 字符串?