我使用以下Javascript代码将textarea保存到用户计算机上的文本文件中。这仅限于我们的内联网,只允许使用IE,因此仅限于安全性有限的IE并不是一个大问题;但是,我无法使用PHP。因此,我想坚持使用javascript并调整以下脚本以强制将字符集转换为UTF-8。我在保存文件时注意到的是,它会在记事本和记事本++中正确读取,但是当在wordpad中打开时,很明显UTF-16并不令人满意。同样,如果我将其保留到保存对话框并手动将编码更改为UTF-8,则会保存页面中的所有文本,而不仅仅是文本区域。此外,如果有人知道如何将默认的“另存为类型”更改为文本.txt,这将是很棒但不重要。
<script type="text/javascript">
function SaveContentsTXT(element) {
if (typeof element == "string")
element = document.getElementById(element);
element3 = document.getElementsByName( 'TXTFILE' )[0];
if (element) {
if (document.execCommand) {
var oWin = window.open("about:blank", "_blank");
oWin.document.write((((element.value).replace(/ /g, ' ')).replace(/\t/g, ' ')).replace(/\n\r?/g, '<br />'));
oWin.document.close();
var success = oWin.document.execCommand('SaveAs', true, element3.value);
oWin.close();
if (!success)
alert("Sorry, your browser does not support this feature or you canceled.");
}
}
}
</script>
答案 0 :(得分:1)
oWin.document.charset="UTF-8";
最终结果:
function SaveContentsTXT(element) {
if (typeof element == "string")
element = document.getElementById(element);
txtitle = document.getElementsByName( 'TXTFILE' )[0];
if (element) {
if (document.execCommand) {
var oWin = window.open("about:blank", "_blank");
oWin.document.write((((element.value).replace(/ /g, ' ')).replace(/\t/g, ' ')).replace(/\n\r?/g, '<br />'));
oWin.document.close();
oWin.document.save="text";
oWin.document.charset="UTF-8";
var success = oWin.document.execCommand('SaveAs', true, txtitle.value);
oWin.close();
if (!success)
alert("Sorry, your browser does not support this feature or you canceled.");
}
}
}