2012-12-07 3 views
0

데이터베이스에서 가져온 문자열을 Servlet을 사용하여 백엔드에서 보내고 있습니다. 서블릿은 JSON을 구성하고 클라이언트JSON에서 HTML로 n r 올바르게 표시하십시오.

내가 JSON

public static String toHTML(String string){ 
     StringBuffer sb = new StringBuffer(); 
        for(int i=0;i<string.length();i++){ 
          char ch=string.charAt(i); 
          switch(ch){ 
          case '"': 
            sb.append("\\\""); 
            break; 
          case '\\': 
            sb.append("\\\\"); 
            break; 
          case '\b': 
            sb.append("\\b"); 
            break; 
          case '\f': 
            sb.append("\\f"); 
            break; 
          case '\n': 
            sb.append("\\n"); 
            break; 
          case '\r': 
            sb.append("\\r"); 
            break; 
          case '\t': 
            sb.append("\\t"); 
            break; 
          case '/': 
            sb.append("\\/"); 
            break; 
          default: 
        //Reference: http://www.unicode.org/versions/Unicode5.1.0/ 
            if((ch>='\u0000' && ch<='\u001F') || (ch>='\u007F' && ch<='\u009F') || (ch>='\u2000' && ch<='\u20FF')){ 
              String ss=Integer.toHexString(ch); 
              sb.append("\\u"); 
              for(int k=0;k<4-ss.length();k++){ 
                sb.append('0'); 
              } 
              sb.append(ss.toUpperCase()); 
            } 
            else{ 
              sb.append(ch); 
            } 
          } 
        }//for 
        return sb.toString(); 

    } 

하지만, 일단 내가 이스케이프 문자를 참조 표시를 탈출하기 위해이 기능을 사용하려면 보냅니다. 예 "something \ r \ n". 제안 사항이 있으십니까?

답변

0

\r\n은 브라우저가 해석 할 수있는 것이 아닙니다. \r\n<br>으로 바꾸면 줄 바꿈이 HTML로 표시됩니다. 그에 따라 다른 태그를 교체하십시오.

0

자바 스크립트 함수는 개행 문자

var nl2br = function(str, is_xhtml) { 
    var breakTag = (is_xhtml || typeof is_xhtml === 'undefined') ? '<br />' : '<br>'; 
    return (str + '').replace(/([^>\r\n]?)(\r\n|\n\r|\r|\n)/g, '$1' + breakTag + '$2'); 
} 

console.log(nl2br('asdf', false));  // asdf 

console.log(nl2br('as\r\ndf', false)); // as<br> 
             // 
             // df 

console.log(nl2br('as\n\rdf', true));​ // as<br /> 
             // 
             // df 
를 대체하는