Httpresponse - Encoding Türkçe Karakter Sorunu
-
Dostlar selam,
Üzerinde çalıştığım bir proje gereği "Export to Excel" işlemini yapmam gerekiyor.
Ancak, türkçe karakter problemini ne yaptıysam çözemedim.
Export işlemi için aşağıdaki kod bloğunu kullanıyorum.
Sorunu enteresan yapan olay ise bu kodun dev ortamında çalışıp, prod ortamında çalışmaması.
Ortaya çıkan sonuçlar da aşağıdaki gibidir.
Eksik/yanlış nokta neresi acaba ? Yardımcı olabilirseniz sevinirim...
HttpResponse Response = System.Web.HttpContext.Current.Response;
Response.Clear();
Response.Buffer = true;
Response.AddHeader("content-disposition", "attachment;filename=" + "Öneriler.xls");
Response.ContentType = "application/vnd.ms-excel";StringWriter yazdir = new StringWriter();
HtmlTextWriter hyazdir = new HtmlTextWriter(yazdir);Response.ContentEncoding = System.Text.Encoding.GetEncoding("windows-1254");
Response.Charset = "windows-1254";GridView ExcelGridView = new GridView();
ExcelGridView.DataSource = oneriler.ToList();
ExcelGridView.DataBind();
ExcelGridView.RenderControl(hyazdir);
Response.Output.Write(yazdir.ToString());
Response.Flush();
Response.End();Dev ortamı export işlemi sonucu
Baslik Konusu SurecSahibi Lokasyon Departman KomiteUyesi EditID Durum 213 İş Sağlığı ve Güvenliği sedat İstinye Pazarlama semih 10 Kapalı Prod ortamı export işlemi sonucu
Baslik Konusu SurecSahibi Lokasyon Departman KomiteUyesi EditID Durum 213 Ä°ÅŸ SaÄŸlığı ve GüvenliÄŸi sedat Ä°stinye Pazarlama semih 10 Kapalı -
http://stackoverflow.com/a/1685900/1330411 şuradaki çözümü yapmışsın galiba.
windows yerine UTF8 kodlama denesen birde?
-
Response.ContentType = "application/vnd.ms-excel";
bundan sonra
Response.Write("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />");sunu eklemeyi dener misin ?
-
FCN bunu yazdı
Response.ContentType = "application/vnd.ms-excel";
bundan sonra
Response.Write("");sunu eklemeyi dener misin ?
ekledim ama bir değişiklik olmadı.
TeRRoR bunu yazdıhttp://stackoverflow.com/a/1685900/1330411 şuradaki çözümü yapmışsın galiba.
windows yerine UTF8 kodlama denesen birde?
denedim hocam bu da sonucu değiştirmedi.
benim anlamadığım şu; culture durumunu runtime da set ediyor olmama rağmen, sunucular arasında durumu farklı hale getiren ne olabilir acaba ?
-
http://msdn.microsoft.com/en-us/library/system.net.webresponse.getresponsestream.aspx
bunu uyarlarsan duzelir pasa.
bu satira dikkat et: "Encoding encode = System.Text.Encoding.GetEncoding("utf-8");"
-
TeRRoR bunu yazdı
http://stackoverflow.com/a/1685900/1330411 şuradaki çözümü yapmışsın galiba.
windows yerine UTF8 kodlama denesen birde?
dostum bu çözümdeki aşağıdaki satırlar gözümden kaçmış.
bununla sorun çözüldü.
eyvallah :)
Response.ContentEncoding = System.Text.Encoding.Unicode; Response.BinaryWrite(System.Text.Encoding.Unicode.GetPreamble());