2012-08-29 2 views
0

일부 값에는 개행 문자가 포함 된 문자열이 포함 된 SQLite 데이터베이스가 있습니다. '\n'. 값이 데이터베이스에서 꺼내 졌을 때 String에 넣고 TextViewsetText()String 값으로 설정하면 줄 바꿈이 작동하지만 불행히도 그렇게하지 않기를 바랬습니다. 문자열을 구문 분석하고 수동으로 분리하지 않고 다른 옵션?데이터베이스에서 문자열로 TextView에 개행 추가하기

답변

1

디버깅하면 문자열이 실제로 "\ \ r \ \ n"또는 "\ \ n", 즉 이스케이프 처리됩니다. 그래서 그 문자열을 마사지하면 여분의 \를 없애고, 당신은 당신의 해결책을 갖게 될 것입니다. 이것은 특히 데이터베이스에서 읽는 경우에 해당됩니다.

1

문자열을 데이터베이스에 넣을 때 이스케이프 처리 중입니다. TextView에 배치하기 전에 String s = unescape (stringFromDatabase)를 호출하여 문자열을 이스케이프 처리하고 이스케이프 처리 할 수 ​​있습니다.


개인 문자열 언 이스케이프 (문자열 정보) { 복귀 description.replaceAll ("\\ 않음", "\\ N"); }

데이터베이스에 데이터를 삽입 할 때 사용자 또는 알 수없는 변경 가능한 원본의 모든 종류의 데이터에 대해 DatabaseUtils.sqlEscapeString()을 사용하고 있는지 확인하십시오. 이렇게하면 오류 및 SQL 주입으로부터 사용자를 보호 할 수 있습니다.

관련 문제