Nas*_*ser 21 iphone cocoa-touch objective-c utf-8
当我尝试将utf-8字符串转换为NSString时,如下所示:
NSString *s = [NSString stringWithUTF8String:"\U0627\U0644\U0641\U0631\U0646"];
NSLog(@"%@", s);
Run Code Online (Sandbox Code Playgroud)
我得到编译错误:
incomplete universal character name
Run Code Online (Sandbox Code Playgroud)
请注意,它有时正常工作:
NSString *UAE = [NSString stringWithUTF8String:"\U0627\U0644\U0641\U0631\U0646"];
NSLog(@"%@", UAE);
Run Code Online (Sandbox Code Playgroud)
和输出:
????????
Run Code Online (Sandbox Code Playgroud)
那为什么会这样呢?请帮忙.
Dav*_*har 37
你和你不是一回事.\ U转义需要8(十六进制)数字而不是4.
这应该工作:
NSString *s = [NSString stringWithUTF8String:"\u0627\u0644\u0641\u0631\u0646"];
Run Code Online (Sandbox Code Playgroud)
不完整的通用字符名称意味着您缺少要编写的 utf8 字符之一的一部分。
UTF8 的范围从 1 字节符号到 4 字节符号,可能你的一个比你写的更长,并且你丢失了 1 字节或类似的东西。
归档时间: |
|
查看次数: |
12927 次 |
最近记录: |