C#nedir?com Homepage
Forum Home Forum Home > ASP.NET > ASP.NET
  New Posts New Posts RSS Feed - türkçe karakter sorunu
  FAQ FAQ  Forum Search   Events   Register Register  Login Login

türkçe karakter sorunu

 Post Reply Post Reply
   

Author
Message
tasarimci270 View Drop Down
Groupie
Groupie


Joined: 13 Ekim 2009
Location: Turkey
Status: Offline
Points: 63
Post Options Post Options   Thanks (0) Thanks(0)   Quote tasarimci270 Quote  Post ReplyReply Direct Link To This Post Topic: türkçe karakter sorunu
    Posted: 26 Ekim 2009 at 22:59
Gridview i excel dosyasına yazdırıyorum fakat türkçe karakterler bozuk geliyor kodlarım aşşağıda, sanırım utf8 olduğundan, bu problemi nasıl çözerim arkadaşlar?
 
System.IO.StringWriter stringWrite = new System.IO.StringWriter();

System.Web.UI.HtmlTextWriter htmlWrite = new System.Web.UI.HtmlTextWriter(stringWrite);

htmlWrite.WriteLine("<br />");

htmlWrite.WriteLine();

htmlWrite.WriteLine("<br /><br />");

GridView1.RenderControl(htmlWrite);

MemoryStream memorystream = new MemoryStream();

byte[] _bytes = Encoding.UTF8.GetBytes(stringWrite.ToString());

memorystream.Write(_bytes, 0, _bytes.Length);

memorystream.Seek(0, SeekOrigin.Begin);

Back to Top
PcMaKeR View Drop Down
Moderator Group
Moderator Group


Joined: 22 Haziran 2009
Status: Offline
Points: 4516
Post Options Post Options   Thanks (0) Thanks(0)   Quote PcMaKeR Quote  Post ReplyReply Direct Link To This Post Posted: 27 Ekim 2009 at 12:07
Encoding.Default.GetBytes(stringWrite.ToString());
yada
Encoding.

Encoding.GetEncoding(1254).GetBytes(stringWrite.ToString());

koyu yerlere dikkat et.
büyük olasılık 1254 lü işini görecek. Türkçe karakter kodlaması.
Back to Top
izdirap View Drop Down
Senior Member
Senior Member


Joined: 07 Mayıs 2008
Status: Offline
Points: 1149
Post Options Post Options   Thanks (0) Thanks(0)   Quote izdirap Quote  Post ReplyReply Direct Link To This Post Posted: 27 Ekim 2009 at 13:05
Selam.
 
 
        string dosyaadi;
        dosyaadi = "Rapor.xls";
        String attachment = "attachment; filename=" + dosyaadi;
        Response.Clear();
        Response.ClearHeaders();
        Response.ClearContent();
        Response.ContentEncoding = System.Text.Encoding.GetEncoding("windows-1254");
        Response.Charset = "windows-1254";           
        Response.AddHeader("content-disposition", attachment);
        Response.ContentType = "application/ms-excel";
        System.IO.StringWriter sw = new System.IO.StringWriter();
        HtmlTextWriter htw = new HtmlTextWriter(sw);
        HtmlForm frm = new HtmlForm();
        GridView1.Parent.Controls.Add(frm);
        frm.Controls.Add(GridView1);
        frm.RenderControl(htw);
        Response.Write(" <meta http-equiv='Content-Type' content='text/html; charset=windows-1254' />" + sw.ToString());
        Response.End();
 
 
Bu kod işinizi görücektir
Onur ÜNLÜ
http://onurunlu.blogcu.com
Back to Top
tasarimci270 View Drop Down
Groupie
Groupie


Joined: 13 Ekim 2009
Location: Turkey
Status: Offline
Points: 63
Post Options Post Options   Thanks (0) Thanks(0)   Quote tasarimci270 Quote  Post ReplyReply Direct Link To This Post Posted: 27 Ekim 2009 at 14:07
pcmaker arkadaşım çok teşekkür ederim sana dediğin gibi ikinci yazdığın kod karakterleri düzeltti.
Back to Top
tasarimci270 View Drop Down
Groupie
Groupie


Joined: 13 Ekim 2009
Location: Turkey
Status: Offline
Points: 63
Post Options Post Options   Thanks (0) Thanks(0)   Quote tasarimci270 Quote  Post ReplyReply Direct Link To This Post Posted: 27 Ekim 2009 at 15:26
yalnız şöyle bir sorun oluştu  gridview i excele yazdırıyorum Encoding.GetEncoding(1254).GetBytes(stringWrite.ToString()); bu karakter koduyla sorun yok düzeliyor fakat ben gridview içerisine kullanıcı bilgilerini text olarak yazdırmaya kalktığımda bu kodda işe yaramıyor hem gridview hem kullanıcı bilgisi karakterleri bozuluyor buna bir çare varmıdır arkadaşlar? kodlarım;
 

System.IO.StringWriter stringWrite = new System.IO.StringWriter();

System.Web.UI.HtmlTextWriter htmlWrite = new System.Web.UI.HtmlTextWriter(stringWrite);

htmlWrite.WriteLine("<br />");

htmlWrite.WriteLine("Ad Soyad: " + dr["ad"].ToString() + " " + dr["soyad"].ToString() + "<br>Firma: " + dr["firma"].ToString() +

"<br>Adres: " + dr["adres"].ToString() + "<br>ehir: " + dr["sehir"].ToString() + "<br>le: " + dr["ilce"].ToString() +

"<br>Aklama: " + txtaciklama.Text + "");

htmlWrite.WriteLine("<br /><br />");

GridView1.RenderControl(htmlWrite);

MemoryStream memorystream = new MemoryStream();

byte[] _bytes = Encoding.GetEncoding(1254).GetBytes(stringWrite.ToString());

memorystream.Write(_bytes, 0, _bytes.Length);

memorystream.Seek(0, SeekOrigin.Begin);

Back to Top
PcMaKeR View Drop Down
Moderator Group
Moderator Group


Joined: 22 Haziran 2009
Status: Offline
Points: 4516
Post Options Post Options   Thanks (0) Thanks(0)   Quote PcMaKeR Quote  Post ReplyReply Direct Link To This Post Posted: 27 Ekim 2009 at 18:58

asp.net sayfanın karakter kodlaması ne?

 
utf 8 mi yoksa.
 
onu kontrol etsene bir zahmet.
Back to Top
PcMaKeR View Drop Down
Moderator Group
Moderator Group


Joined: 22 Haziran 2009
Status: Offline
Points: 4516
Post Options Post Options   Thanks (0) Thanks(0)   Quote PcMaKeR Quote  Post ReplyReply Direct Link To This Post Posted: 27 Ekim 2009 at 18:59
Aaa izdirap ın kodu görmedim.
 
yanlız o character seth i 1254 vermiş. bu sadece internet explorer ve windowsta işe yarar.
 
8859-9 verilmeli.
Back to Top
tasarimci270 View Drop Down
Groupie
Groupie


Joined: 13 Ekim 2009
Location: Turkey
Status: Offline
Points: 63
Post Options Post Options   Thanks (0) Thanks(0)   Quote tasarimci270 Quote  Post ReplyReply Direct Link To This Post Posted: 27 Ekim 2009 at 20:17

asp.net sayfam windows="1254" ilk sadece gridview i çwktirince düzgün ama üye bilgisini yazdırırsam bozuluyor türkçe karakterler

Back to Top
tasarimci270 View Drop Down
Groupie
Groupie


Joined: 13 Ekim 2009
Location: Turkey
Status: Offline
Points: 63
Post Options Post Options   Thanks (0) Thanks(0)   Quote tasarimci270 Quote  Post ReplyReply Direct Link To This Post Posted: 27 Ekim 2009 at 22:09
şimdi aslında sorunun neden kaynaklandığını buldum ama düzeltemiyorum excel  e aktarırken gridview i önce yazdırıp uye bilgilerini sonra altına yazdırısam Türkçe karakterler düzgün geliyor, uye bilgilerini önce sonra altına gridview i yazırırsam Türkçe karakterler bozuluyor bu neden kaynaklanır?
Back to Top
bilsisco View Drop Down
Newbie
Newbie


Joined: 11 Temmuz 2018
Status: Offline
Points: 2
Post Options Post Options   Thanks (0) Thanks(0)   Quote bilsisco Quote  Post ReplyReply Direct Link To This Post Posted: 11 Temmuz 2018 at 11:43
Merhaba, alttaki kod çalışıyor 
(private void ToCsV= excele kaydetme metodu)
(private void exceleVeriKaydetToolStripMenuItem_Click= bu ise menü. butona da koyabilirsiniz)
------------------------------
private void ToCsV(DataGridView dGV, string filename)
        {// Excele datagridviewden veri kaydetme
            string stOutput = "";
            // Export titles:
            string sHeaders = "";
            // Hatırlatma \n=newline, \t=tab, \r=paragrafsonu
            for (int j = 0; j < dGV.Columns.Count; j++)
                sHeaders = sHeaders.ToString() + Convert.ToString(dGV.Columns[j].HeaderText) + "\t";
            stOutput += sHeaders + "\r\n";
            // Export data.
            for (int i = 0; i < dGV.RowCount - 1; i++)
            {
                string stLine = "";
                for (int j = 0; j < dGV.Rows.Cells.Count; j++)
                    stLine = stLine.ToString() + Convert.ToString(dGV.Rows.Cells[j].Value) + "\t";
                stOutput += stLine + "\r\n";
            }
            Encoding utf16 = Encoding.GetEncoding(1254); //Türkçe karakter kod tablosu
            //Info.CodePage      Info.Name                    Info.DisplayName
            //1254               windows-1254                 Turkish (Windows)
            //28599              iso-8859-9                   Turkish (ISO)
            byte[] output = utf16.GetBytes(stOutput);
            FileStream fs = new FileStream(filename, FileMode.Create);
            BinaryWriter bw = new BinaryWriter(fs);
            bw.Write(output, 0, output.Length); //write the encoded file
            bw.Flush();
            bw.Close();
            fs.Close();
        } 

        private void exceleVeriKaydetToolStripMenuItem_Click(object sender, EventArgs e)
        {// Kaydetme işlemi
            MessageBox.Show("zilsaatleri_disa_aktar.xls");
            SaveFileDialog sfd = new SaveFileDialog();
            sfd.Filter = "Excel Documents (*.xls)|*.xls";
            sfd.FileName = "zilsaatleri_disa_aktar.xls";
            if (sfd.ShowDialog() == DialogResult.OK)
            {
                //ToCsV(dataGridView1, @"c:\export.xls");
                ToCsV(dataGridView1, sfd.FileName); // Here dataGridview1 is your grid view name
            }

        }
Back to Top
 Post Reply Post Reply
  Share Topic   
   


Forum Jump Forum Permissions View Drop Down

Forum Software by Web Wiz Forums® version 11.01
Copyright ©2001-2014 Web Wiz Ltd.