0

非ラテン語のテキストは、XCodeデバッグコンソールで非常に奇妙な方法で出力されます。どのようにそれを正しくしますか?

例:Проверьте давление экрана.になりました–ü—Ä–æ–≤–µ—Ä–∫–∞ –¥–∞–≤–ª–µ–Ω–∏—è —ç–∫—Ä–∞–Ω–∞

(私の英語が苦手なので、質問を改善してください。ここに書いた内容がわかりにくい場合はお知らせください。)

- (id) initWithDictionary:(NSDictionary*)dictionary
{
    //...
    self.title = [dictionary objectForKey:@"Заголовок"] ; // dictionary from plist encoded in UTF8
    //...
    return self;
}
- (void) log
{
    NSString *class = NSStringFromClass([self class]);
    NSString *sel   = NSStringFromSelector(_cmd);
    NSLog(@"%@:%@:%@", class, title_, sel);
}

title_plistからロードされたiVarNSStringです。uiviewcontrollerのタイトルとして使用され、iPhoneとiPadで正常に動作します。

4

2 に答える 2

1

デバッガーをlldbからgdbに変更したので、出力はOKになりました。したがって、lldbに何か問題があるはずです。

xcode 4:メニュー->製品->スキームの管理...次に、編集ボタン-> Your.appの実行(左側のパネル)->デバッガー->LLDBからGDBに変更します。

于 2012-06-14T13:01:39.013 に答える
0

Xcode 3の時点では、これは問題にならないだろうと思いましたが、間違っていると思いました。

ロギングの醜いトリック:NSStringの-cStringUsingEncoding:を別のロギング形式で試して、正しいエンコーディングを強制的に表示しようとするかもしれません。これが機能するかどうかはわかりません:

NSLog(@"%S", [title_ cStringUsingEncoding:NSUnicodeStringEncoding]);
于 2012-06-08T15:59:25.693 に答える