Ustaw metatag charset z JavaScript
Jest błąd, który próbuję wyśledzić tutaj:https://github.com/OscarGodson/EpicEditor/issues/184#issuecomment-8805982
Na podstawie wszystkich informacjiwydaje się na przykład dlatego, że przeglądarka domyślnie używa macierzystego zestawu znaków użytkownika (w tym przypadkuISO-8859-1
) i nieUTF-8
jak na mojej maszynie i innych w USA. Zgaduję, że poprawka polega na użyciu HTML do wymuszenia kodowaniaUTF-8
z:
<meta charset='utf-8'>
lub
<meta http-equiv='Content-Type' content='Type=text/html; charset=utf-8'>
Jednak JS nie działa. W pierwszym przykładzie:
charsetMetaTag = self.editorIframeDocument.createElement('meta');
charsetMetaTag.charset = 'utf-8';
self.editorIframeDocument.getElementsByTagName('head')[0].appendChild(charsetMetaTag);
Po prostu odzyskuję następujące elementy wstrzyknięte do DOM:
<meta>
A w drugim przykładziehttp-equiv
nie jest ustawiany:
charsetMetaTag = self.editorIframeDocument.createElement('meta');
charsetMetaTag['http-equiv'] = 'Content-Type';
charsetMetaTag['content'] = 'text/html; charset=utf-8';
self.editorIframeDocument.getElementsByTagName('head')[0].appendChild(charsetMetaTag);
Otrzymuję następujący kod HTML:
<meta content="text/html; charset=utf-8">
Tak, muszę to robić dynamicznie, ponieważ dynamicznie tworzę ramki iframe. Może to nawet nie być problemem, ale tak właśnie wygląda. Jedynym „hackiem”, o którym myślę, jest jakoś używanie innerHTML ...