0

一部の値に改行文字を含む文字列が含まれている SQLite データベースがあります'\n'。その値がデータベースから取得され、 a に入れられ、 a が値に設定されたときに、改行が機能することを期待していましたStringTextViewsetText()残念Stringながら機能しません。文字列を解析して手動で分割する以外のオプションはありますか?

4

2 に答える 2

1

文字列がデータベースに配置されるときに、文字列がエスケープされています。文字列をTextViewに配置する前に、String s = unescape(stringFromDatabase)を呼び出すことで、文字列のエスケープを解除できます。


private String unescape(String description){return description.replaceAll( "\\ n"、 "\\ n"); }

補足として、データベースにデータを挿入するときは、ユーザーまたは不明な変更可能なソースからのあらゆる種類のデータでDatabaseUtils.sqlEscapeString()を使用していることを確認してください。これにより、エラーやSQLインジェクションから保護されます。

于 2013-02-22T06:58:35.003 に答える
1

デバッグすると、文字列が実際には "\ \r\ \n" または "\ \n" であることがわかります。つまり、エスケープされています。したがって、その文字列をマッサージして余分な \ を取り除くと、解決策が得られます。これは、データベースから読み取る場合に特に当てはまります。

于 2012-08-29T00:39:30.990 に答える