gpt4 book ai didi

objective-c - 无法通过 NSString 输出 ü

转载 作者:行者123 更新时间:2023-11-29 11:18:06 24 4
gpt4 key购买 nike

我做了一个应用程序,我可以从 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。在应用程序和 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];

最佳答案

这是一个 RTF 文件,不是纯文本文件。它的内容根据 RTF 文件的编码方式进行编码,这涉及转义非 ASCII 字符。

因为在 iOS 上没有原生的 RTF 支持(在 Mac OS X 上有 NSAttributedString),你必须使用你自己的 RTF 解析器来读取这个文件。我不推荐它。如果 RTF 文件实际上用于存储属性(例如 italicbold 文本),您将不得不通过解析器路径将其转换为 NSAttributedString 或其他格式。

如果它只是纯文本(因此可以完全由 Unicode 字符串表示),那么您应该使用已知编码(例如 UTF-8)将文件重新创建为 TXT 文件,然后然后使用 -[NSString initWithContentsOfFile:encoding:] 来读取它。

关于objective-c - 无法通过 NSString 输出 ü,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8537680/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com