为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

交互式爱情 2018-12-06 17:11:57
我是先用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导出的文件中文显示正确,转换格式后中文变为乱码
查看完整描述

9 回答

?
Cats萌萌

TA贡献1805条经验 获得超9个赞

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的编码格式来转换,
这就导致转换后的文件中文为乱码。
查看完整回答
反对 回复 2019-01-21
?
莫回无

TA贡献1865条经验 获得超7个赞

GB2312

查看完整回答
反对 回复 2019-01-21
?
绝地无双

TA贡献1946条经验 获得超4个赞

Encoding.UTF7->Encoding.GB2312

查看完整回答
反对 回复 2019-01-21
?
眼眸繁星

TA贡献1873条经验 获得超9个赞

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

查看完整回答
反对 回复 2019-01-21
?
SMILET

TA贡献1796条经验 获得超4个赞

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

查看完整回答
反对 回复 2019-01-21
?
慕神8447489

TA贡献1780条经验 获得超1个赞

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

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

查看完整回答
反对 回复 2019-01-21
?
30秒到达战场

TA贡献1828条经验 获得超6个赞

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

查看完整回答
反对 回复 2019-01-21
?
ITMISS

TA贡献1871条经验 获得超8个赞

谢谢!问题已经解决了,问题是出在要在英文Office的语言设置中添加中文
查看完整回答
反对 回复 2019-01-21
?
隔江千里

TA贡献1906条经验 获得超10个赞

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

查看完整回答
反对 回复 2019-01-21
  • 9 回答
  • 0 关注
  • 704 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信