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