【问题标题】:stop ë getting transformed to ë in Angular2停止 ë 在 Angular2 中转换为 ë
【发布时间】:2017-06-01 06:41:19
【问题描述】:

我遇到了一个字符串被转换为其他字符串的问题。像这样的东西->“geïnkt”正在变成这个“geïnkt”。在我的模板中,我有一个像这样的对象标签: <object type="text/html" [data]="file"></object>

在我的组件内部:

const elem = document.createElement("textarea"); elem.innerHTML = this.sanitizer.sanitize(SecurityContext.NONE, this.content); let url = ``data:text/html,${this.sanitizer.sanitize(SecurityContext.NONE, elem.value.replace(new RegExp('\r?\n','g'), '<br />'))}``; this.file = this.sanitizer.bypassSecurityTrustResourceUrl(url);

所以,我正在做一些消毒。现在问题是当我检查元素时,我可以看到数据正确地传递给了 data 属性。但是一旦我进一步打开对象 div ,我就有了这样的结构: #document -&gt; &lt;html&gt;&lt;head&gt;&lt;/head&gt;&lt;body&gt;&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;geïnkt&lt;/div&gt;&lt;/body&gt;&lt;/html&gt;

我尝试提供 charset:UTF-8 但这也没有帮助。谁能帮我理解这里发生了什么?

【问题讨论】:

  • 您需要创建一个重现问题的 plunkr

标签: angular utf-8 encode


【解决方案1】:

所以,当我在清理后尝试形成 url 时,编码似乎是一个问题。我做了什么:

let url = ``data:text/html;charset=utf-8,${this.sanitizer.sanitize(SecurityContext.NONE, elem.value.replace(new RegExp('\r?\n','g'), '&lt;br /&gt;'))};

还包括字符集编码并且它正在工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-11-28
    • 2012-02-18
    • 2021-03-26
    • 1970-01-01
    • 2011-08-30
    • 1970-01-01
    • 2013-04-11
    相关资源
    最近更新 更多