这个和js基本没什么关系呀。
只要后台返回的数据标识了 是 file ,前台是用 submit (非ajax)方式提交的就可以了
HttpServletResponse res= //你的response
res.setHeader("Content-disposition", "attachmentfilename="+filename)
OutputStream out = res.getOutputStream()
out.write(r1.getBytes("GBK"))// r1 你的文本内容
out.close()//关闭输出流
这样就OK 了呀
可能你需要用编辑器来打开,保存时选择文档编码类型。个人常用的editplus在保存时可以改字符编码。-------------
至于什么原因,提示很清楚了。就是一个文件需要选择适当的编码类型,才能支持里面的字符正常显示,保存。而你当前使用的可能是windows默认的文件编码类型,并未支持你文件里面的所有字符。
基于安全原因,js是无法操作word的,也无法保存到本地路径,你要用其它方式实现,比如开发浏览器插件ActiveX
另一个兄弟才真的是瞎回答,看清楚那些js导出word,首先要做的是:
IE设置:
工具->Internet选项->安全->自定义级别->对没有标记安全级别的ActiveX控件进行初始化
设为启用!
你把这个非安全的ActiveX进行初始化开启了,意味着你的电脑对木马页面开启了