项目是多语言版本,提供中文和英文,但导出的数据会有中文。数据直接从数据库中去获取(非GridView中获取)。现在在英文操作系统下访问项目系统,导出的EXCEL中文显示的是乱码。EXCEL文件是生成在服务器端,用Response.Redirect("文件名",true)的方式传输到客户端的,在服务器端EXCEL中文显示正常,传输到客户端英文操作系统下就乱码了。
原因分析:既然服务端显示正常,而客户端是乱码,怀疑客户端是英文操作系统导致的。客户端网页可以显示中文,Office安装的是英文。但问题还是存在,查找原因,很多提到生成EXCEL文件时编码要设置成UTF-8之类的,但使用的组件已经经过封装了,生成EXCEL文件并不能进行这样的操作。最后终于找到解决方案,方法如下:
1.控制面板->区域和语言选项
在“语言”标签中勾上“为东亚语言安装文件”
在“高级”标签中的“非Unicode程序的语言”中选择“中文(中国)”
(请自行翻译成英文与英文系统对应)
2.开始->Microsoft Office->Microsoft Office工具->Microsoft Office 2003语言设置
“启用的语言”中添加“中文(简体)”
“请选择定义Microsoft Office应用程序默认方式的语言”中选择“中文(简体)”
另外一篇关于Excel导出中文乱码解决方案的文章为:Asp.NET导出Excel文件乱码解决若干方法