我试图在这里追踪一个错误:https ://github.com/OscarGodson/EpicEditor/issues/184#issuecomment-8805982
根据所有信息,这似乎是因为浏览器默认为用户的本机字符集(在本例中为ISO-8859-1
),而UTF-8
不像我的机器和美国的其他机器上那样。我猜一个解决方法是使用 HTML 来强制编码UTF-8
:
<meta charset='utf-8'>
或者
<meta http-equiv='Content-Type' content='Type=text/html; charset=utf-8'>
但是,JS 不工作。在第一个示例中:
charsetMetaTag = self.editorIframeDocument.createElement('meta');
charsetMetaTag.charset = 'utf-8';
self.editorIframeDocument.getElementsByTagName('head')[0].appendChild(charsetMetaTag);
我刚刚返回注入 DOM 的以下内容:
<meta>
在第二个示例中,http-equiv
未设置:
charsetMetaTag = self.editorIframeDocument.createElement('meta');
charsetMetaTag['http-equiv'] = 'Content-Type';
charsetMetaTag['content'] = 'text/html; charset=utf-8';
self.editorIframeDocument.getElementsByTagName('head')[0].appendChild(charsetMetaTag);
我得到以下 HTML:
<meta content="text/html; charset=utf-8">
是的,我需要动态地执行此操作,因为我动态地创建 iframe。这甚至可能不是问题,但这就是它的样子。我能想到的唯一“黑客”是以某种方式使用innerHTML ...