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
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
  C Dll indeki Callback Nasıl Çevrilir? (Çözüldü) erkankurtaga 13 787 15-04-2018, Saat: 22:11
Son Yorum: ilgazinho
  URLDownloadToFileW api türkçe karakter resim indirmiyor. masteryoda 5 98 14-04-2018, Saat: 16:54
Son Yorum: barutali
  RSA Encrypt (Çözüldü) yhackup 4 165 05-04-2018, Saat: 11:50
Son Yorum: yhackup
  [ÇÖZÜLDÜ] Google Calendar API Server tipi Erişim Metodu hakkında tecrübesi olan mrmarman 38 947 26-03-2018, Saat: 10:22
Son Yorum: klavye
  [ Çözüldü] Runtime da çıkan hata sebepleri Lord_Ares 8 232 16-03-2018, Saat: 17:11
Son Yorum: Lord_Ares



Konuyu Okuyanlar: 1 Ziyaretçi