2011-12-16 23 views
1

NSStringの通じない出力üはは私が</p> <p>ファイルは、このコードを使ってロードされた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 フリル

文字列を出力するとき、üのような文字は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]; 
+1

ファイルは実際にutf-8でエンコードされていますか? – geoffspear

+0

私は知らない。私はちょうどmacのテキストエディットでそれをrtfとして保存しました。 – Shubhank

答えて

2

これはRTFファイルで、プレーンテキストファイルではありません。その内容は、非ASCII文字をエスケープするRTFファイルのエンコード方法に従ってエンコードされます。

iOS(Mac OS XにはNSAttributedStringがあります)にネイティブRTFサポートがないので、このファイルを読むために独自のRTFパーサをロールバックする必要があります。私はそれをお勧めしません。 RTFファイルが実際に属性(例:イタリックまたは太字テキスト)を格納するために使用されている場合は、パーサールートを使用してNSAttributedStringまたは他の形式に変換する必要があります。

それは、あなたが読みとその後、使用-[NSString initWithContentsOfFile:encoding:](UTF-8など)知られているエンコーディングを使用してTXTファイルとしてファイルを再作成する必要があるだけで、プレーンテキストです(したがって、完全にUnicode文字列で表すことができる)場合それ。

+0

ありがとうございました。 – Shubhank

関連する問題

 関連する問題