FabricJS Android Webview 换行符显示为 \n

FabricJS Android Webview Newlines showing as \n

所以我用 canvas 加载了一个基本页面,一切似乎都正常,除了换行符显示为 \n

这里是 java 方法的正文:

input = StringEscapeUtils.unescapeShell(this.getData());

    private String htmlBody(String input){


        return "<html><head>" +
                "<link href=\"fonts.css\" type=\"text/css\" rel=\"stylesheet\" />" +
                "<script src=\"jquery.min.js\" type=\"text/javascript\"></script>" +
                "<script src=\"fontfaceobserver.js\" type=\"text/javascript\"></script>" +
                "<script src=\"fabric.min.js\" type=\"text/javascript\"></script>" +
                "<style type=\"text/css\">" +

                ".canvas-container {" +
                        "margin: 0 auto;" +
                    "}"+
        "</style>" +
                "<script src=\"javascript_fabric.js\" type=\"text/javascript\"></script>" +
                "</head><body>"+
                "<div id=\"sb2div\" class=\"row\" style=\"margin: 0 auto!important; max-height: 100vh\">" +
                "<canvas id=\"fabricjs-branding\" width=\"600\" height=\"600\" style=\"margin: auto!important;\"></canvas>" +
                "</div>" +
                "<script>" +
                "$(document).ready(function(){" +
                    "setUpBranding();" +
                    "var o = " + input + ";" +
                    "console.log(o);" +
                    "fabricjscanvas.loadFromJSON(o);"+
                "});" +
                "</script>" +
                "</body></html>";

    }

setUpBranding()fabricjscanvas 进行了初始化,它确实添加了一些功能原型,但问题与它们无关。

itext 和 textbox 是使用当前版本 4 的标准

在桌面上使用相同的设置一切正常...

根据评论,我发现换行符没有与 json 数据的其余部分一起转义...很奇怪,但我能够使用 Java 字符串替换方法修复它... 在使用 StringEscapeUtils.unescapeShell

之后
input = StringEscapeUtils.unescapeShell(this.getData());
input = input.replace("\\n", "\n");