2010-12-17 9 views
1

Ich entwickle eine Android 2.2-Anwendung.Spezielle Zeichen n und r auf Android

Ich verwende SQlite3, um Text zu speichern, der in einem TextView angezeigt würde.

Ich möchte eine neue Zeile und Wagenrücklauf zu diesem Text hinzufügen, aber ich weiß nicht, ob ich '\ n' und '\ r' in SQlite3 verwenden kann.

Irgendwelche Ratschläge?

+1

Ich weiß nicht, SQlite überhaupt, aber in der Regel speichert die Datenbank die tatsächlichen Zeichen und die Konvertierung von '\ n' oder' \ r' geschieht zur Kompilierzeit, wenn String-Literale verwenden. Was zu verwenden ist, hängt von Ihrer Sprache und Ihrem Compiler ab, nicht von Ihrem Datenspeicher. – Kendrick

+0

@Kendrick: also, ich kann es benutzen, nicht wahr? – VansFannel

Antwort

2

Wenn Sie die SQLite-API ordnungsgemäß verwenden und Bind-Parameter verwenden, anstatt SQL dynamisch zu generieren, können Sie diese Zeichen ohne Probleme verwenden.

Die Datenbank kodiert wahrscheinlich nur die Zeichen in Stücke von Bytes mit einer gewissen Zeichencodierung, so dass die Tatsache, dass 00001010 "newline" in einigen Kontexten bedeutet, wenn mit den meisten Zeichensätzen dekodiert wird, völlig irrelevant ist. Es geht genau wie alles andere in die Textspalte.

Wenn Sie jetzt keine vorbereiteten Anweisungen verwenden, sondern generisches SQL-Programm sind, treten möglicherweise Probleme auf, abhängig davon, wie SQLite eingebettete Zeilenumbrüche in Zeichenfolgenliteralen verarbeitet (möglicherweise kann oder kann dies nicht funktionieren). Aber das sollte kein Problem sein, denn Sie können dies trotzdem umgehen (auch wenn Sie benötigen, um Ihre Anweisungen dynamisch zu generieren, erstellen Sie einfach eine Anweisung mit ? Platzhaltern, bereiten Sie sie vor und binden Sie dann Ihre Variablen).

+0

+1 Binding Params mit Anweisungen ist der Weg zu gehen. Das sollte Details auf niedriger Ebene (wie diese) für Sie behandeln. –

0

Haben Sie versucht, ihnen zu entkommen? \\n, \\r

Verwandte Themen