通过activeXObject在jscript中创建的文本文件中的换行符



从顶部开始:使用以下代码,我可以通过ActiveX对象在Internet Explorer的htm文件中使用jscript创建一个文本文件。耶!然而,在记事本中打开文本文件时,我注意到新行显示为mojibake字符(矩形字符),而不是换行符。《升华2》很好。

<html>
<head>
</head>
<script type="text/javascript">
var myStr = "The self same moment I could pray;nAnd from my neck so freenThe Albatross fell off, and sanknLike lead into the sea.";
var myPath = "C:\temp\";
var myTextfile = "Rime.txt"
writeFile(myPath, myTextfile, myStr)
function writeFile(apath, afilename, str)
{ 
  var fso = new ActiveXObject("Scripting.FileSystemObject");
  var outFile = fso.CreateTextFile(apath + afilename, true);
  outFile.WriteLine(str);
  outFile.Close();
}
</script>
</body>
</html>

我还注意到,当使用以下来自Photoshop环境(我通常从那里编写脚本)的时,不会发生这种情况

var txtFile = new File(apath + "/" + afilename);
outFile.open('w');
outFile.writeln(str);
outFile.close();

这只是ActiveX的一个怪癖(或奖励)吗?我可以更改它,使其写入可以在记事本中正确查看的新行吗?

是的,我母亲确实警告过我使用ActiveX对象的危险。

看起来字符编码有问题。试试这个而不是CreateTextFile():

var outFile = fso.OpenTextFile(apath + afilename, 2, true, 0);

第二个参数:1=读取,2=写入,8=追加。

第三个参数:true(如果创建了不存在的文件),false(如果未创建不存在文件)。[可选,默认=false]

第四个参数:0=ASCII,-1=Unicode,-2=系统默认值。[可选,默认值=0]

相关内容

  • 没有找到相关文章

最新更新