【发布时间】:2013-04-11 16:39:37
【问题描述】:
不知道大家是否知道用于保存文件的 javascript 库。
基本上以前的代码如下:
var bb = new BlobBuilder();
bb.append(content);
var fileSaver = window.saveAs(bb.getBlob("text/plain;charset=UTF-8"), "filename.txt");
但现在是这样的:
var oMyBlob = new Blob([content], { type : "text/plain", endings: "transparent"});
window.saveAs(oMyBlob, "filename.txt");
无论我使用什么(如果不推荐使用的 BlobBuilder 或 Blob),都不会显示 newLines,所有内容都保存在文本文件的同一行下。
你们知道为什么会这样吗?尝试使用不同的 ContentType: text/plain, text/enricher, text/html...
这些似乎都不适用于 newLines。 如果我要在文件中保存一个“警报(数据)”,那么 newLines 就在那里。 当我使用这个库时,看起来它解析了 newLines 什么的,不知道:( 也尝试了其他字符集..
提前致谢。
【问题讨论】:
-
请提供系统信息:客户端操作系统、服务器操作系统、文本文件是在什么操作系统上制作的?
-
没关系!!!我已经解决了,如果有人试图解决这个问题,我只是从控制器发送文件,用“\r\n”作为换行符而不是“\n”。并且要小心,因为 "\n\r" 不起作用,只有 \r\n 可以完成这项工作。无论如何,感谢 rxt 提供帮助。
-
行尾取决于操作系统,Windows、Unix 和我认为 Mac 使用不同的行尾字符。当您使用写字板打开文件时,\n 将显示在 Windows 中。在 AIR 中,您应该使用 window.runtime.flash.filesystem.File.lineEnding 找不到 ECMA JS 的任何内容,但 w3c 确实提到需要一个函数:w3.org/TR/FileAPI/#convenienceAPI
-
行尾——这就是我问的原因!
标签: javascript file save blob newline