0

我有一个非常奇怪的问题。大约三年前,我启动了一个 iOS 应用程序(iOS-SDK 3.0),从那时起经历了 SDK 4.0 和 5.0。从 5.0(或者可能是 5.1)开始,我突然开始遇到德语特殊字符(ä ö ü ß)的问题。

现在我什至不能用特殊字符初始化一个 NSString ,这一行:

NSString *str = @"abcäxyz";

给出以下警告:

由于输入字节不属于输入代码集 UTF-8,输入转换停止

和这个:

NSLog(@"%@", strTemp);

给出:

美国广播公司

所以它停在第一个特殊字符处。在其他项目中,一切都很好。我可以毫无问题地使用特殊字符。

是配置问题吗?

编辑:显然这是文件编码的问题。

文件-我的文件


正在给:

文本/x-c++;charset=unknown-8bit

尝试用 iconv 转换它给了我:

不支持从未知 8 位转换

4

3 回答 3

1

当您使用 UTF-8 代码初始化字符串时会发生什么?像这样:

 NSString *s = [NSString stringWithFormat:@"%C", 0xc39f]; // should be ß 

据我所知,你也应该能够做到这一点,但还没有测试过:

  NSString *s = [NSString stringWithUTF8String:"0xc39f"];

试试这些,看看会发生什么。周围有许多网站为特殊字符保留 UTF-8 代码表,例如这个

于 2012-09-07T10:00:23.007 回答
1

只要您的文件是 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");
}
于 2012-09-07T10:15:17.867 回答
0

已解决:更改了 Xcode 中的文件编码:单击要更改编码的文件,然后打开右侧面板(此面板的名称实际上是什么?任何想法?)以编辑属性。您可以在“文本设置”下看到“文本编码”。就这些。

于 2012-09-08T09:47:46.290 回答