我正在打开一个子窗口并用JavaScript编写内容。父页面具有UTF-8字符集,但子窗口打开时带有ISO-8859-1
我尝试使用document.write使用元标记设置子页面内容类型,但它似乎没有效果。
launcherHtml = '
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
</body>
</html>
'
sandbox = window.open()
sandbox.document.open()
sandbox.document.write(launcherHtml)
sandbox.document.close()
sandbox.document.characterSet // ISO-8859-1 !!!
我也尝试在子窗口中使用<meta charset="UTF-8">
作为标记,但结果是一样的。
如何将弹出窗口的字符集正确指定为UTF-8?
答案 0 :(得分:3)
适用于多种哑剧类型的2016年末的方法,包括&#34; text / plain&#34; 和&#34; text / html&#34; :
uriEncode
JavaScript示例:
var launcherHtml = `
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>UTF-8 example</title>
</head>
<body>
<h1>Example using unicode and '#'</h1>
Hello folks, 你好! (nǐ hǎo) in Chinese, good evening,
こんばんは (in Japanese).
</body>
</html>
`;
var launcherURL = "data:text/html;charset=utf-8,"
+ encodeURI( launcherHtml).replace(/#/g,"%23");
sandbox = window.open(launcherURL)
sandbox.document.characterSet // UTF-8, yippee