Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从JSON以HTML格式正确显示\n\r_Json_Gwt_Html Encode - Fatal编程技术网

从JSON以HTML格式正确显示\n\r

从JSON以HTML格式正确显示\n\r,json,gwt,html-encode,Json,Gwt,Html Encode,我从数据库中提取了一个字符串,并使用Servlet从后端发送。servlet构造JSON并将其发送给客户端 我使用这个函数来转义JSON public static String toHTML(String string){ StringBuffer sb = new StringBuffer(); for(int i=0;i<string.length();i++){ cha

我从数据库中提取了一个字符串,并使用Servlet从后端发送。servlet构造JSON并将其发送给客户端

我使用这个函数来转义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();

    }
公共静态字符串到HTML(字符串){
StringBuffer sb=新的StringBuffer();

for(int i=0;i
\r\n
显然是浏览器无法解释的。将
\r\n
替换为

,您的HTML换行符就会出现。相应地替换其他标记。

JavaScript函数替换换行符

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
var nl2br=函数(str,is_xhtml){
var breakTag=(is|xhtml | typeof is|xhtml==='undefined')?“
”:“
”; 返回(str+'')。替换(/([^>\r\n]?)(\r\n |\n\r |\r |\n)/g,'$1'+breakTag+'$2'); } log(nl2br('asdf',false));//asdf log(nl2br('as\r\ndf',false));//as
// //df log(nl2br('as\n\rdf',true));​ // 作为
// //df