Tüm Platformlar için Hızlı Uygulama Geliştirme --->    Kitabımız...      Delphi

Konuyu Paylaş : facebook gplus twitter

Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
XML'de Türkçe karakter sorunu [Çözüldü]
#1
Merhaba; excelden verileri alıp daha sonra xml olarak kaydediyorum, fakat xml kayıt baktığımda türkçe karakter sorunu var bu sorunu nasıl çözerim


const
  RowSon = $0000000B;
var
  Xml: TStringlist;
  SSay, J: Integer;
  Excel, Sheet, Book: Variant;
begin
  With OpenDialog do
    try
      Filter := 'Excel *.xls,*.xlsx|*.xls;*.xlsx';
      Options := Options + [ofAllowMultiSelect];
      if Execute then
      begin
        Xml := TStringlist.Create;
        Screen.Cursor := crHourGlass;
        Excel := CreateOleObject('Excel.Application');
        Book := Excel.Workbooks.Open(FileName);
        Sheet := Book.WorkSheets[1]; // Sayfa 1 den çek
        SSay := Excel.ActiveSheet.Cells.SpecialCells(RowSon, EmptyParam).Row;
        for J := 1 to SSay do
        begin
          Xml.Add('<adres>');
          Xml.Add('<il>' + Trim(Sheet.Cells[J, 1]) + '</il>');
          Xml.Add('<ilce>' + Trim(Sheet.Cells[J, 2]) + '</ilce>');
          Xml.Add('<semt>' + Trim(Sheet.Cells[J, 3]) + '</semt>');
          Xml.Add('<mahalle>' + Trim(Sheet.Cells[J, 4]) + '</mahalle>');
          Xml.Add('<posta>' + Trim(Sheet.Cells[J, 5]) + '</posta>');
          Xml.Add('</adres>');
        end;
      end;
    finally
      Xml.SaveToFile(C:\Users\serhat\Desktop\' + 'il_ilce.xml');
      Screen.Cursor := crDefault;
      Excel.Workbooks.Close;
      Excel.Quit;
      Excel := Unassigned;
      Sheet := Unassigned;
    end;
end;

Cevapla
#2
excelden okuduklarınızı form üzerindeki bir memoya yazdırdınız mı?
türkçe karakter sorunun kaynağını anlamak için
excel'den okunurken mi, yoksa xml olarak kaydedince mi oluyor
Cevapla
#3
Merhaba, Charset belirlememişsin,

Kod:
XML.Encoding  := 'utf-8';

Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol
Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol
Kuvvete dayanamayan adalet aciz, 
Adalete dayanamayan kuvvet zalimdir.
WWW
Cevapla
#4
(25-07-2017, Saat: 00:43)serhat Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye OlMerhaba; excelden verileri alıp daha sonra xml olarak kaydediyorum, fakat xml kayıt baktığımda türkçe karakter sorunu var bu sorunu nasıl çözerim


const
  RowSon = $0000000B;
var
  Xml: TStringlist;
  SSay, J: Integer;
  Excel, Sheet, Book: Variant;
begin
  With OpenDialog do
    try
      Filter := 'Excel *.xls,*.xlsx|*.xls;*.xlsx';
      Options := Options + [ofAllowMultiSelect];
      if Execute then
      begin
        Xml := TStringlist.Create;
        Screen.Cursor := crHourGlass;
        Excel := CreateOleObject('Excel.Application');
        Book := Excel.Workbooks.Open(FileName);
        Sheet := Book.WorkSheets[1]; // Sayfa 1 den çek
        SSay := Excel.ActiveSheet.Cells.SpecialCells(RowSon, EmptyParam).Row;
        for J := 1 to SSay do
        begin
          Xml.Add('<adres>');
          Xml.Add('<il>' + Trim(Sheet.Cells[J, 1]) + '</il>');
          Xml.Add('<ilce>' + Trim(Sheet.Cells[J, 2]) + '</ilce>');
          Xml.Add('<semt>' + Trim(Sheet.Cells[J, 3]) + '</semt>');
          Xml.Add('<mahalle>' + Trim(Sheet.Cells[J, 4]) + '</mahalle>');
          Xml.Add('<posta>' + Trim(Sheet.Cells[J, 5]) + '</posta>');
          Xml.Add('</adres>');
        end;
      end;
    finally
      Xml.SaveToFile(C:\Users\serhat\Desktop\' + 'il_ilce.xml');
      Screen.Cursor := crDefault;
      Excel.Workbooks.Close;
      Excel.Quit;
      Excel := Unassigned;
      Sheet := Unassigned;
    end;
end;


Merhaba,

Şu eklemeleri projendeki veya excel dosyandaki kodlamaya göre ayarlarsan sorun çözülecektir.

    ...
    finally
      Xml.WriteBom := FALSE; // bu satır BOM özelliği olmadan dosyaya yazılmasını sağlar, eğer BOM olsun istiyorsan TRUE yapmalısın, UTF8 kullandığımda bunu TRUE yapıyorum
      Xml.SaveToFile(C:\Users\serhat\Desktop\' + 'il_ilce.xml'       ,      TEncoding.UT8    );   // UTF8 olarak kodlayarak veriyi dosyaya yazar

BOM ve Kodlama konusunda aşağıdaki sayfaları gözden geçirmelisin;
Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol
Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol
Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol

Diğer Encoding türleri için;
Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol
Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol,Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol,Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol,Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol
Cevapla
#5
(25-07-2017, Saat: 00:43)serhat Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye OlMerhaba; excelden verileri alıp daha sonra xml olarak kaydediyorum, fakat xml kayıt baktığımda türkçe karakter sorunu var bu sorunu nasıl çözerim


const
  RowSon = $0000000B;
var
  Xml: TStringlist;
  SSay, J: Integer;
  Excel, Sheet, Book: Variant;
begin
  With OpenDialog do
    try
      Filter := 'Excel *.xls,*.xlsx|*.xls;*.xlsx';
      Options := Options + [ofAllowMultiSelect];
      if Execute then
      begin
        Xml := TStringlist.Create;
        Screen.Cursor := crHourGlass;
        Excel := CreateOleObject('Excel.Application');
        Book := Excel.Workbooks.Open(FileName);
        Sheet := Book.WorkSheets[1]; // Sayfa 1 den çek
        SSay := Excel.ActiveSheet.Cells.SpecialCells(RowSon, EmptyParam).Row;
        for J := 1 to SSay do
        begin
          Xml.Add('<adres>');
          Xml.Add('<il>' + Trim(Sheet.Cells[J, 1]) + '</il>');
          Xml.Add('<ilce>' + Trim(Sheet.Cells[J, 2]) + '</ilce>');
          Xml.Add('<semt>' + Trim(Sheet.Cells[J, 3]) + '</semt>');
          Xml.Add('<mahalle>' + Trim(Sheet.Cells[J, 4]) + '</mahalle>');
          Xml.Add('<posta>' + Trim(Sheet.Cells[J, 5]) + '</posta>');
          Xml.Add('</adres>');
        end;
      end;
    finally
      Xml.SaveToFile(C:\Users\serhat\Desktop\' + 'il_ilce.xml');
      Screen.Cursor := crDefault;
      Excel.Workbooks.Close;
      Excel.Quit;
      Excel := Unassigned;
      Sheet := Unassigned;
    end;
end;


Xml.SaveToFile(C:\Users\serhat\Desktop\' + 'il_ilce.xml', TEncoding.GetEncoding(1254));
sorununuzu çözeceğini düşünüyorum
O. Mert
WWW
Cevapla
#6
Emeği geçen herkese teşekkür ederim.

'il_ilce.xml',TEncoding.Unicode);
Cevapla

Konuyu Paylaş : facebook gplus twitter



Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Datasnap Türkçe karakter sorunu [Çözüldü] hakanharbeli 4 109 11-02-2018, Saat: 03:29
Son Yorum: hakanharbeli
Star ıdHTTP Post hakkında? [Çözüldü] Cyber 1 85 06-02-2018, Saat: 13:36
Son Yorum: Cyber
  Form create h.k (Çözüldü ) cinarbil 12 266 25-01-2018, Saat: 12:09
Son Yorum: cinarbil
  Program Files Yetki Sorunu narkotik 9 229 18-01-2018, Saat: 17:45
Son Yorum: SimaWB
  Wsdl Xml Importer(Çözüldü) yhackup 17 221 09-01-2018, Saat: 15:42
Son Yorum: yhackup



Konuyu Okuyanlar: 1 Ziyaretçi