MODIFICA: L'output NSLog funziona bene nel simulatore, ma non funziona quando è collegato a un dispositivo reale. E sembra che sia un bug - http://openradar.appspot.com/11148883. Accade anche che sia collegato al LLDB, il passaggio da Xcode a GDB risolve il problema. O è possibile l'AppCode di JetBrain, che funziona bene con il LLDB.NSLog restituisce caratteri unicode come dati inutili durante il debug su iPhone
Ho un sacco di stringhe Unicode nella domanda, e se provo a uscita una di queste stringhe usando qualcosa come NSLog (@ "% @", astring) poi tutti i caratteri ASCII nel stringa verrà stampato bene, ma tutte le lettere in cirillico sarà incasinato, così invece di
newLocation: coordinate:60.019584,30.284954 'Удельная'
sto ottenendo:
newLocation: coordinate:60.019584,30.284954 '–ü–æ–∫–ª–æ–Ω–Ω–æ–≥–æ—Ä—Å–∫–∞—è'
E questo è abbastanza difficile fare il debug con quel tipo di output. E dal momento che quell'app è indirizzata al mercato russo, non posso solo cambiare le impostazioni internazionali e utilizzare le stringhe in inglese.
Quindi mi chiedo se esiste un modo per far funzionare NSLog con caratteri unicode? E sto cercando solo una qualche soluzione one-liner, so che ci sono alcuni modi per scrivere una mezza pagina di codice e produrre caratteri unicode, ma sto cercando qualcosa di più breve. Idealmente sto cercando un metodo di NSString che faccia funzionare tutto. per esempio.
NSLog(@"%@", [aString someThingThatMakesUnicodeWorkWithXcodeConsole]);
Sei sicuro che la tua aString stia memorizzando correttamente la risposta? Da quello che hai postato credo che aString non abbia archiviato correttamente la risposta, quindi sì, quando lo si stampa con NSLog, fallirà. Stampa caratteri greci con NSLog tutto il tempo. Come stai memorizzando la risposta a aString? – Lefteris
Da dove vengono le stringhe? Li leggi da un file? Quando sono all'interno del codice dovrebbe funzionare. Ho provato: NSString * s = @ "Удельная"; NSLog (@ "% @", s); e ha funzionato bene. –
Questi dati provengono da un file, ma una stringa letterale non ha funzionato neanche per me. Ma sembra che io abbia trovato la fonte - funziona bene nel simulatore, ma restituisce spazzatura quando è connesso all'iPhone, quindi probabilmente qualcosa è semplicemente sbagliato con alcune impostazioni. Grazie. –