在IE8中使用“另存为”execCommand以ANSI格式而不是UCS2-Little Endian保存XML文件

时间:2015-02-04 13:37:40

标签: javascript encoding internet-explorer-8 window.open

我目前正在尝试使用Internet Explorer 8中的Javascript使用“SaveAs”execCommand保存XML数据。我打开窗口后使用document.write(xml)编写xml内容.IE8中的文档对象使用saveAs Exec命令允许用户将xml文件保存在本地文件夹中。生成XML文件,但它不会将编码设置为我喜欢的其他接口的首选类型,我需要发送此XML,即ANSI / UTF -8 encoding.I只能用UCS2小端编码格式保存XML。下面是我正在使用的代码。

 var location = "D:\\export_to_MCT"+dateTime+".xml";

    var xml = tmpSelectedConfigurationXML.transformNode(xslDoc);// XML Is generated here
   alert(xml);
     **var testlink = window.open  ("about:blank","_blank","toolbar=no,status=no,menubar=no,scrollbars=no,resizable=no,left=10000, top=10000, width=10, height=10, visible=none");
     testlink.document.write(xml); //fileData has contents for the file
testlink.document.close();
testlink.document.execCommand('SaveAs', false, location);**
testlink.close();

我的目的是在没有BOM格式的情况下以ANSI / UTF-8编码保存xml。我不能使用ActiveX对象的Scripting.FileSystemObject方法。请建议

1 个答案:

答案 0 :(得分:1)

从XML中删除不受支持的字符

由于并非所有UTF-8字符都在XML文档中被接受,因此您需要从生成的任何XML中删除任何此类字符。 在阅读xml文件后,替换'/ [^ \ x {0009} \ x {000a} \ x {000d} \ x {0020} - \ x {D7FF} \ x {E000} - \ x {FFFD}] + /你跟''

或 尝试 testlink.document.charset = “UTF-8”;