javascript - 将 UTF8 文本写入文件

标签 javascript internet-explorer unicode activex internationalization

我正在使用以下函数将文本保存到文件(在 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/

相关文章:

打印到屏幕的顺序的 Javascript 问题

c++ - unicode char 与非 unicode char 比较,但没有警告或错误

C++ Utf-8转换使用atlconv.h/W2A和中文文本

Java : Skip Unicode characters while reading a file

Javascript:架构资源管理器 Chrome 扩展循环需要忽略不相关的嵌套元素

c# - 客户端 : if textbox1 and textbox 2 set counter++

javascript - Jquery 禁用 mousedown 事件而不丢失与事件关联的函数

html - IE6 sub 中的菜单列表不下降

javascript - 究竟如何进行这个循环的进步呢? (兼容Internet Explorer 9,时间准确)

在 IE 中具有透明度的 jQuery 循环插件