我有一个轻微的错误,目前我正在使用window.open()在新窗口中创建一个页面。
var myWindow = window.open ('','','scrollbars=1, menubar=1, toolbar=1, titlebar=1, status=1, resizable=1, width=800, height=600');
然后,我开始将HTML写到文档中。
我需要允许IE9中的用户通过电子邮件发送我使用文件->发送->页面创建的页面。然而,当尝试这样做时,电子邮件会使用一个奇怪的字符集输出。
格浴㹬†格慥㹤††琼瑩敬吾楨歮湩坧牯摬慂敳䄠灰敬㱴琯瑩敬ാ †㰠敭慴栠瑴⵰煥極㵶䌢湯整瑮吭灹≥挠湯整瑮∽整瑸栯浴㭬挠慨獲瑥椽潳㠭㔸ⴹ∱ാഊഊ㰊䍓䥒呐䰠乁啇䝁㵅慊慶捓楲瑰ാ㰊ⴡഭഊऊ畦据楴湯猠瑥灵畆据楴湯愨
我绞尽脑汁,在网上搜索,我会感谢任何人能给我的帮助。
感谢Gary
更新:
只是一个快速更新,我已经为页面设置了如下元数据。
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
我遇到了完全相同的问题,通过显式设置文档的字符集,我能够部分解决它。这是我的测试页面:
<HTML>
<HEAD>
<SCRIPT>
var w = window.open();
w.document.open();
w.document.charset = 'utf-8';
w.document.write('<html><head></head><body>Page 2</body></html>');
w.document.close();
</SCRIPT>
</HEAD>
<BODY>
Page 1
</BODY>
</HTML>
文档的字符集一开始是"unicode",无论我如何设置元标记,它都不会改变——只有明确地改变字符集,我才能获得清晰的文本。
现在的问题是IE使用了错误的页面!即使我为第2页选择了选项卡,电子邮件也会显示第1页的内容。
如果我查看源代码或打印页面,我会看到第2页的内容。但是,如果我保存页面或通过电子邮件发送页面,我会得到第1页的内容。
如果我将保存类型更改为"网页,仅HTML",我可以保存第2页的内容,但这不是默认设置,因此会让人感到困惑。
我认为这是因为新选项卡仍然有初始页面的文件名——我正在努力弄清楚是否可以在不连接初始页面的情况下打开窗口。
您可以使用Content-Type标头显式指定页面的编码。
例如
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
指定内容采用大多数西方国家使用的拉丁-1字母表。