【发布时间】:2012-01-10 11:54:48
【问题描述】:
我有 2 个字符串。希望一切都先制作一个 .txt 文件,然后将字符串保存为 unicode。
function WriteFile(file, str, str2)
{
var tmp=real_url.replace(/%20/g, " ");
var WshNetwork=new ActiveXObject("WScript.Network");
var userid=WshNetwork.UserName;
var fso = new ActiveXObject("Scripting.FileSystemObject");
if(! fso.FolderExists(tmp+"users/"+userid))
{
var cf = fso.CreateFolder(tmp+"users/"+userid);
}
else
{
//alert("THIS FOLDER ALREADY EXISTS");
}
delete fso;
var fso = new ActiveXObject("Scripting.FileSystemObject");
var fh = fso.OpenTextFile(tmp+"users/"+userid+"/"+file, 2, true);
fh.WriteLine(str);
fh.WriteLine(str2);
fh.Close();
delete fso;
return;
}
我
【问题讨论】:
-
您无法从外部站点读取/写入客户端 JavaScript 中的文件。这违反了安全政策。
-
它不是基于浏览器的 Javascript,它是 Windows Scripting Host 代码,可以使用 API 访问本地文件系统。
-
顺便说一句,这不是真正的重复,但这个问题的答案可能会解决你的问题:stackoverflow.com/questions/2840252/writing-utf8-text-to-file
-
找到了解决方案!它在 writeLine 的属性中。你必须声明-1。
-
Karl,您应该重新发布您的解决方案并将其标记为已回答。您是对的,WriteLine 方法接受一个可选的第三个参数,该参数采用三态值的形式,指示文件应以 Unicode、Ansi 还是系统默认值打开。此外,无需在代码中重新创建 FileSystemObject。您可以重用您的变量。否则,您只是在脚本中增加了不必要的开销。