Gau*_*ole 12 unicode-string localizable.strings ios
我们在Localization.string文件中有键值对.
"spanish-key" = "Espa\u00f1ol";
Run Code Online (Sandbox Code Playgroud)
当我们获取并分配给标签时,app会将其显示为"Espau00f1ol".
不行.
self.label1.text= NSLocalizedString(@"spanish-key", nil);
Run Code Online (Sandbox Code Playgroud)
它工作 - 以所需的格式显示.
self.label1.text= @"Espa\u00f1ol";
Run Code Online (Sandbox Code Playgroud)
我们使用时可能会出现什么问题
NSLocalizedString(@"spanish-key", nil)?
Run Code Online (Sandbox Code Playgroud)
如果我们设置\ U而不是\ u,那么它可以工作.
"spanish-key" = "Espa\U00f1ol";
Run Code Online (Sandbox Code Playgroud)
何时使用"\ Uxxxx"和"\ uxxxx"?
Mar*_*n R 30
NSString文字和字符串文件使用不同的转义规则.
NSString 文字使用与"普通"C字符串相同的转义序列,特别是C99标准中定义的"通用字符名称":
\unnnn - the character whose four-digit short identifier is nnnn
\Unnnnnnnn - the character whose eight-digit short identifier is nnnnnnnn
Run Code Online (Sandbox Code Playgroud)
例:
NSString *string = @"Espa\u00F1ol - \U0001F600"; // Español -
Run Code Online (Sandbox Code Playgroud)
另一方面,字符串文件\Unnnn用于表示UTF-16字符,而"UTF-16代理对"用于字符> U + FFFF:
"spanish-key" = "Espa\U00f1ol - \Ud83d\Ude00";
Run Code Online (Sandbox Code Playgroud)
(这是在"旧式属性列表"中使用的转义,在打印"NSDictionary"的描述时可以看到.)
这(希望)回答了你的问题
何时使用"\ Uxxxx"和"\ uxxxx"?
但是:正如@ gnasher729在他的回答中所指出的那样,根本不需要使用Unicode转义序列.您只需在NSString文字和字符串文件中插入Unicode字符本身:
NSString *string = @"Español - ";
"spanish-key" = "Español - ";
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5224 次 |
| 最近记录: |