2012-03-14 2 views
0

У меня возникли проблемы с написанием некоторых китайских иероглифов в ответ на http. Я устанавливаю application/vnd.ms-excel в ContentType.Как написать неанглийские символы в HttpResponse

Когда я просматриваю файл excel, я не вижу персонажей, которые я написал. Я также пытался использовать другую кодировку, но она не работает. Я что-то упускаю?

protected void Button1_Click(object sender, EventArgs e) 
    { 
     HttpResponse response = Page.Response; 
     response.Clear(); 
     response.ClearHeaders(); 
     response.ContentEncoding = System.Text.UnicodeEncoding.GetEncoding("GB2312"); 
     response.Charset = "GB2312"; 
     response.AddHeader("Content-Disposition", "attachment;filename=myfile.xls"); 
     response.ContentType = "application/vnd.ms-excel;charset=GB2312"; 
     response.Write("盈亏 你好你好你怎么样"); 
     response.Flush(); 
     response.End(); 
    } 
+1

Что такое кодировка вашего редактора, если это не gb2312, вам нужно его преобразовать. – PasteBT

+1

Является ли '盈亏 你好 你好 你 怎么 样' действительным форматом Excel? –

+1

Где, собственно, вы просматриваете файл «Excel»? Потому что, я готов поспорить, что эти символы не являются действительной электронной таблицей «xls». –

ответ

1

Нам удалось решить эту проблему с помощью Response.BinaryWrite вместо Response.Write. Спасибо, парни!

1

Пробовали ли вы сделать это в web.config

<globalization fileEncoding="utf-8" requestEncoding="utf-8" responseEncoding="utf-8" responseHeaderEncoding="utf-8" />

затем выход в UTF8

+0

попробует .. но нам удалось его решить, используя BinaryWrite. –