2009-07-06 7 views
4

SQLite 데이터베이스에서 HTML로 읽는 UIWebView 기반 iPhone 응용 프로그램이 있습니다. 사용자는 캐리지 리턴을 허용하는 UITextView를 통해 입력 된 새로운 정보를 저장할 수 있습니다. UIWebView에서 캐리지 리턴 (줄 바꿈)을 올바르게 표시하려면 어떻게합니까?iPhone의 UIWebView에서 줄 바꿈을 올바르게 저장/표시하려면 어떻게해야합니까?

NSString *HTMLData = [mySQLiteDataObject text]; 
HTMLData = [HTMLData stringByReplacingOccurrencesOfString:@"\\n" 
    withString:@"<br>"]; 
[webView loadHTMLString:HTMLData baseURL:nil]; 

을하지만 줄 바꿈이 있다고 인정되는 텍스트처럼 보이지 않는 : :이 같은 것을 사용하여 시도 한 텍스트는 웹보기에서 하나의 연속 선에 표시됩니다. 콘솔에서 텍스트를 인쇄 할 때 줄 바꿈이 그대로 유지됩니다.

위 예제 코드에서 \ n, \ r 및 \ r \ n을 사용해 보았습니다. 성공하지 못했습니다. 사용자의 텍스트를 잘못 저장했거나 디스플레이 측에서 잘못된 것을하고 있습니까? 내가 잘못 아니에요 경우는 HTML 휴식 태그 "\\n"를 교체 할 때

답변

2

검색 문자열에 두 개의 백 슬래시가 있습니다. "\n"을 바꿔야합니다. "\\n"을 바꾸면 작동하지 않습니다.

그러나 UIWebView에로드하기 전에 really want to sanitize your input을로드하십시오. 최소한 <,>, & 및 ".

+0

마스크를 사용해야합니다. 추가 백 슬래시가 범인이었습니다. 내가 더블 백 슬래시를 다른 곳에서 추천 한 것을 맹세 했었습니다. 더 자세한 배경 정보는 이 일반적인 개념 설명 : http://experimentgarden.blogspot.com/2009/07/how-to-stop-hacker-dont-trust-user.html NSString을 확장하는 기본 sanitizeForDisplay 메서드를 작성했습니다. – bruce1337

0

, 그것은 다음과 같아야합니다

HTMLData = [HTMLData stringByReplacingOccurrencesOfString:@"\\n" 
    withString:@"<br />"]; 

당신이 휴식 문에서 슬래시 누락 된 것 같다.

관련 문제