[英]iOS special characters, strange issue
我有一个非常奇怪的问题。 我大约三年前开始使用iOS应用程序(iOS-SDK 3.0),从那时起就开始使用SDK 4.0和5.0。 从5.0(或5.1)开始,我突然开始遇到德国特殊字符(äöüß)的问题。
现在我甚至无法使用特殊字符初始化NSString,这一行:
NSString *str = @"abcäxyz";
发出以下警告:
由于输入字节不属于输入代码集UTF-8,输入转换停止
还有这个:
NSLog(@"%@", strTemp);
得到:
ABC
所以它停在第一个特殊的char。 在其他项目中一切都很好。 我可以毫无问题地使用特殊字符。
这是配置问题吗?
编辑:显然这是文件编码的问题。
文件-I myFile
给予:
文本/ X-C ++; 字符集=未知-8位
试图用iconv转换它给了我:
转换自未知-8位不受支持
使用UTF-8代码初始化字符串时会发生什么? 像这样:
NSString *s = [NSString stringWithFormat:@"%C", 0xc39f]; // should be ß
据我所知,你也应该能够这样做,但还没有测试过:
NSString *s = [NSString stringWithUTF8String:"0xc39f"];
试试这些,看看会发生什么。 周围有许多站点可以保留特殊字符的UTF-8代码表,例如这个 。
只要您的文件编码为UTF-8, @"abcäxyz"
应该没问题,但嵌入文字unicode字符的显式形式是\\ u ????。
- (void)testGermanChar
{
NSString *expected = @"abc\u00E4xyz";
NSString *actual = @"abcäxyz";
STAssertEqualObjects(expected, actual, @"the two strings should be equivalent");
}
已解决:更改了Xcode中的文件编码:单击要更改其编码的文件,然后打开右侧面板(实际上这个窗格的名称是什么?任何想法?)来编辑属性。 在那里,您会看到“文本设置”下的“文本编码”。 就这些。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.