Definir meta tag charset com JavaScript
Há um bug que estou tentando rastrear aqui:https://github.com/OscarGodson/EpicEditor/issues/184#issuecomment-8805982
Baseado em todas as informaçõesparece como é porque o navegador é o padrão para charset nativo do usuário (neste caso,ISO-8859-1
) e nãoUTF-8
como na minha máquina e outros nos EUA. Eu estou supondo que uma correção é usar HTML para forçar a codificação paraUTF-8
com:
<meta charset='utf-8'>
ou
<meta http-equiv='Content-Type' content='Type=text/html; charset=utf-8'>
No entanto, o JS não está funcionando. No primeiro exemplo:
charsetMetaTag = self.editorIframeDocument.createElement('meta');
charsetMetaTag.charset = 'utf-8';
self.editorIframeDocument.getElementsByTagName('head')[0].appendChild(charsetMetaTag);
Acabei de receber o seguinte injetado no DOM:
<meta>
E no segundo exemplo ohttp-equiv
não está sendo definido:
charsetMetaTag = self.editorIframeDocument.createElement('meta');
charsetMetaTag['http-equiv'] = 'Content-Type';
charsetMetaTag['content'] = 'text/html; charset=utf-8';
self.editorIframeDocument.getElementsByTagName('head')[0].appendChild(charsetMetaTag);
Eu recebo o seguinte HTML:
<meta content="text/html; charset=utf-8">
Sim, eu preciso fazer isso dinamicamente como estou criando dinamicamente os iframes.Isto não pode mesmo ser o problema, mas é assim que está parecendo. O único "hack" que eu posso pensar é de alguma forma usando innerHTML ...