我创建了一个应用程序,我从rtf文件中读取单词
通过此代码加载文件
self.germanpath = [[NSBundle mainBundle]pathForResource:@"german" ofType:@"rtf"];
germanfile = [[NSString alloc]initWithContentsOfFile:germanpath encoding:NSUTF8StringEncoding error:&error];
文件内容为
schockierend knusprig das Schachmatt der Schriftsteller getrocknete Früchte
当我输出字符串时,像ü
这样的字符就像getrocknete Fr\'fcchte
一样打印。在app和NSLog
语句中,它都以\'
开头。
我只是尝试输出
NSLog(@"schockierend knusprig das Schachmatt der Schriftsteller getrocknete Früchte");
它有效。所以我说明了我用来输出它的方法;我正在逐字输出
NSString *startfrom = [[NSString alloc] initWithFormat:@"german%i",i];
NSString *word = nil;
NSScanner *scanner = [NSScanner scannerWithString:germanfile];
[scanner scanUpToString:startfrom intoString:nil];
[scanner scanUpToString:@" end" intoString:&word];
NSString *finalword = [word substringFromIndex:[startfrom length]];
Word.font = [UIFont fontWithName:@"DK Crayon Crumble" size:25.0];
Word.text = finalword;
NSLog(@"%@",finalword);
[startfrom release];
答案 0 :(得分:2)
这是一个RTF文件,而不是纯文本文件。其内容根据RTF文件的编码方式进行编码,包括转义非ASCII字符。
由于iOS上没有原生RTF支持(Mac OS X上有NSAttributedString
),您必须滚动自己的RTF解析器才能读取此文件。我不推荐它。如果RTF文件实际上用于存储属性(例如斜体或粗体文本),则必须使用解析器路径将其转换为{{ 1}}或其他一些格式。
如果它只是纯文本(因此可以用Unicode字符串完全表示),那么您应该使用已知编码(例如UTF-8)和然后将文件重新创建为TXT文件使用NSAttributedString
来阅读它。