我正在使用以下功能将文本保存到文件(在IE-8 w/ActiveX上)。

function saveFile(strFullPath, strContent)
{
    var fso = new ActiveXObject( "Scripting.FileSystemObject" );

    var flOutput = fso.CreateTextFile( strFullPath, true ); //true for overwrite
    flOutput.Write( strContent );
    flOutput.Close();
}

如果文本完全是Latin-9,则该代码可以正常工作,但是当文本甚至包含单个UTF-8编码字符时,写入都会失败。

看来,ActiveX FileSystemObject不支持UTF-8。我首先尝试对文本进行UTF-16编码,但结果出现乱码。什么是解决方法?

最佳答案

试试这个:

function saveFile(strFullPath, strContent) {
 var fso = new ActiveXObject("Scripting.FileSystemObject");
 var utf8Enc = new ActiveXObject("Utf8Lib.Utf8Enc");
 var flOutput = fso.CreateTextFile(strFullPath, true); //true for overwrite
 flOutput.BinaryWrite(utf8Enc.UnicodeToUtf8(strContent));
 flOutput.Close();
}

关于javascript - 将UTF8文本写入文件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2840252/

10-10 07:06