Festlegen des Zeichensatz-Meta-Tags mit JavaScript

Es gibt einen Fehler, den ich hier aufzuspüren versuche:https://github.com/OscarGodson/EpicEditor/issues/184#issuecomment-8805982

Basierend auf allen Informationenscheint wie es ist, weil der Browser standardmäßig die native Zeichensatz des Benutzers (in diesem Fall,ISO-8859-1) und nichtUTF-8 wie auf meiner Maschine und anderen in den USA. Ich vermute, dass eine Lösung darin besteht, HTML zu verwenden, um die Codierung zu erzwingenUTF-8 mit:

 <meta charset='utf-8'> 

oder

<meta http-equiv='Content-Type' content='Type=text/html; charset=utf-8'>

Der JS funktioniert jedoch nicht. Im ersten Beispiel:

charsetMetaTag = self.editorIframeDocument.createElement('meta');
charsetMetaTag.charset = 'utf-8';
self.editorIframeDocument.getElementsByTagName('head')[0].appendChild(charsetMetaTag);

Ich bekomme gerade folgendes in den DOM zurück gespritzt:

<meta>

Und im 2. Beispiel diehttp-equiv wird nicht gesetzt:

charsetMetaTag = self.editorIframeDocument.createElement('meta');
charsetMetaTag['http-equiv'] = 'Content-Type';
charsetMetaTag['content'] = 'text/html; charset=utf-8';
self.editorIframeDocument.getElementsByTagName('head')[0].appendChild(charsetMetaTag);

Ich erhalte folgenden HTML-Code zurück:

<meta content="text/html; charset=utf-8">

Ja, ich muss dies dynamisch tun, da ich die iframes dynamisch erstelle. Dies mag nicht einmal das Problem sein, aber so sieht es aus. Der einzige "Hack", an den ich denken kann, ist die Verwendung von innerHTML ...

Antworten auf die Frage(2)

Ihre Antwort auf die Frage