folder Tahribat.com Forumları
linefolder C#, Asp.Net, .Net Core
linefolder Httpresponse - Encoding Türkçe Karakter Sorunu



Httpresponse - Encoding Türkçe Karakter Sorunu

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    verruckt
    verruckt's avatar
    Kayıt Tarihi: 11/Kasım/2007
    Erkek

    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ı

    Zencinin malı züğürtün çenesini yorar
  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    TeRRoR
    TeRRoR's avatar
    Kayıt Tarihi: 06/Nisan/2007
    Erkek

    http://stackoverflow.com/a/1685900/1330411 şuradaki çözümü yapmışsın galiba.

    windows yerine UTF8 kodlama denesen birde? 


    herkes programcı olmak zorunda değildir, lütfen bir zorunluluk gibi programlama dilleri öğrenmeye çalışmayın. yabancı dil filan öğrenin amq.// s.kimin etini yerim, kasaba minnet etmem.// ince düşünene kalın girer.//
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    FCN
    FCN's avatar
    Kayıt Tarihi: 28/Eylül/2007
    Erkek

    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 ?

  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    verruckt
    verruckt's avatar
    Kayıt Tarihi: 11/Kasım/2007
    Erkek
    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 ?


    Zencinin malı züğürtün çenesini yorar
  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Naacal
    Naacal's avatar
    Kayıt Tarihi: 06/Nisan/2007
    Erkek

    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");"

     
    Naacal tarafından 10/Kas/14 16:22 tarihinde düzenlenmiştir
  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    verruckt
    verruckt's avatar
    Kayıt Tarihi: 11/Kasım/2007
    Erkek
    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());

    Zencinin malı züğürtün çenesini yorar
Toplam Hit: 1268 Toplam Mesaj: 6