停止在Angular2中转换为ë

时间:2017-06-01 06:41:19

标签: angular utf-8 encode

我遇到的问题是字符串被转换为其他字符串。像这样的东西 - &gt; “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 -> <html><head></head><body><div xmlns="http://www.w3.org/1999/xhtml">geïnkt</div></body></html>

我尝试过使用字符集:UTF-8,但这也没有用。谁能帮我理解这里发生了什么?

1 个答案:

答案 0 :(得分:0)

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

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

也包含了charset编码,它正在运行。