首页 新闻 赞助 找找看

英文系统中Excel中文乱码问题

0
悬赏园豆:200 [已解决问题] 解决于 2009-11-30 09:12

我是先用Gridview导出,然后再转换格式,部分代码如下
  StringWriter sw = new StringWriter();
  HtmlTextWriter htw = new HtmlTextWriter(sw);
  GV.RenderControl(htw);
  File.WriteAllText(path+"temp", sw,System.Text.Encoding.UTF7);

  Excel.Application excelApp = new Excel.ApplicationClass();
  Excel.Workbooks wbs = excelApp.Workbooks;
  Excel.Workbook wb = wbs.Open(path + "temp", Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);//创建WorkBook
  wb.SaveAs(path, Excel.XlFileFormat.xlExcel7, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Excel.XlSaveAsAccessMode.xlExclusive, Type.Missing, Type.Missing, System.Text.Encoding.UTF7, Type.Missing, Type.Missing);

系统为英文的Windows 2003,Office也是2003英文版
已在Regional and Language Options中选择了Chinese (PRC)

GV导出的文件中文显示正确,转换格式后中文变为乱码

日白得很的主页 日白得很 | 初学一级 | 园豆:3
提问于:2009-11-23 15:13
< >
分享
最佳答案
0

temp  这个文件应该是一个html 格式的问题,楼主需要检查一下这个文件中

<meta http-equiv="Content-Type" content="text/html; charset=UTF-7" />
charset 是不是 UTF-7
如果不是,改成UTF-7试试。

File.WriteAllText(path+"temp", sw,System.Text.Encoding.UTF7);
这句只是把文件本身的编码格式设置成了utf-7,但应没有改变html 文件中的编码格式。
因为你的文件本身编码格式没问题,
所以你打开这个文件时中文显示正常。但转换时会按html的编码格式来转换,
这就导致转换后的文件中文为乱码。
收获园豆:40
eaglet | 专家六级 |园豆:17139 | 2009-11-24 13:58
谢谢!问题已经解决了,问题是出在要在英文Office的语言设置中添加中文
日白得很 | 园豆:3 (初学一级) | 2009-11-30 09:10
虽然和你说的情况不同,不过看你说得最详细,就选你做最佳答案了,呵呵
日白得很 | 园豆:3 (初学一级) | 2009-11-30 09:11
其他回答(8)
0

GB2312

收获园豆:20
一滴血 | 园豆:1602 (小虾三级) | 2009-11-23 15:43
谢谢!问题已经解决了,问题是出在要在英文Office的语言设置中添加中文
支持(0) 反对(0) 日白得很 | 园豆:3 (初学一级) | 2009-11-30 09:12
0

Encoding.UTF7->Encoding.GB2312

收获园豆:20
dege301 | 园豆:2825 (老鸟四级) | 2009-11-23 15:47
谢谢!问题已经解决了,问题是出在要在英文Office的语言设置中添加中文
支持(0) 反对(0) 日白得很 | 园豆:3 (初学一级) | 2009-11-30 09:11
0

把Response.ContentEncoding=System.Text.Encoding.GetEncoding("GB2312");
改成Response.ContentEncoding=System.Text.Encoding.GetEncoding("utf-7");

收获园豆:20
死神的背影 | 园豆:667 (小虾三级) | 2009-11-23 16:55
谢谢!问题已经解决了,问题是出在要在英文Office的语言设置中添加中文
支持(0) 反对(0) 日白得很 | 园豆:3 (初学一级) | 2009-11-30 09:11
0

 File.WriteAllText(path+"temp", sw,System.Text.Encoding.UTF7);  改成  File.WriteAllText(path+"temp", sw,System.Text.Encoding.UTF8);

收获园豆:20
会游泳dě鱼 | 园豆:250 (菜鸟二级) | 2009-11-23 17:30
谢谢!问题已经解决了,问题是出在要在英文Office的语言设置中添加中文
支持(0) 反对(0) 日白得很 | 园豆:3 (初学一级) | 2009-11-30 09:11
0

[二合一]C#读取和导出EXCEL类库(可操作多个SHEET)

看看这个到EXCEL的。不用装EXCEL 

收获园豆:20
woody.wu | 园豆:3621 (老鸟四级) | 2009-11-23 20:47
谢谢!问题已经解决了,问题是出在要在英文Office的语言设置中添加中文
支持(0) 反对(0) 日白得很 | 园豆:3 (初学一级) | 2009-11-30 09:11
0

htw.Encoding = "GB2312";

收获园豆:20
persialee | 园豆:3217 (老鸟四级) | 2009-11-24 12:07
谢谢!问题已经解决了,问题是出在要在英文Office的语言设置中添加中文
支持(0) 反对(0) 日白得很 | 园豆:3 (初学一级) | 2009-11-30 09:11
0

设一下System.Threading.Thread.CurrentThread.CurrentCulture试试

收获园豆:20
寒星 | 园豆:250 (菜鸟二级) | 2009-11-26 12:33
谢谢!问题已经解决了,问题是出在要在英文Office的语言设置中添加中文
支持(0) 反对(0) 日白得很 | 园豆:3 (初学一级) | 2009-11-30 09:10
0

Encoding.UTF7.GetString(Encoding.Default.GetBytes(""));

收获园豆:20
Tom-X | 园豆:515 (小虾三级) | 2009-11-26 17:27
谢谢!问题已经解决了,问题是出在要在英文Office的语言设置中添加中文
支持(0) 反对(0) 日白得很 | 园豆:3 (初学一级) | 2009-11-30 09:11
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册