• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Polskie znaki w zapisie do pliku CSV - C#

Object Storage Arubacloud
0 głosów
1,150 wizyt
pytanie zadane 22 marca 2021 w C# przez disaster Bywalec (2,120 p.)

Cześć, Czy znacie jakiś sposób na to aby zapisywało mi polskie znaki w pliku CSV? 
 

if (!File.Exists(path))
                                    {
                                        sw = File.CreateText(path);
                                        var date = DateTime.Now;
                                        sw = new StreamWriter(path, true);

                                        sw.WriteLine("{0};{1:dd.MM.yyyy};{1:T};{2};{3}", Nrpers.Text, DateTime.Now, Folderkoncowy.Text, "ZATWIERDZONE");
                                        sw.Close();

                                    }

                                    else
                                    {
                                        var date = DateTime.Now;
                                        sw = new StreamWriter(path, true);
                                        sw.WriteLine("{0};{1:dd.MM.yyyy};{1:T};{2};{3};", Nrpers.Text, DateTime.Now, Folderkoncowy.Text, "ZATWIERDZONE");
                                        sw.Close();

                                    }

A w pliku mam takie coś:
a powinno być Grażyna.

GraĹĽyna  19.03.2021 21:51:27 H.ZZ.xxyyzz ZATWIERDZONE

2 odpowiedzi

+1 głos
odpowiedź 22 marca 2021 przez Paweł Nyczkowski Obywatel (1,620 p.)
wybrane 22 marca 2021 przez disaster
 
Najlepsza

spróbuj w ten sposób,  i daj znać czy zadziałało
jednak po testach na 2 stanowiskach wyszło że jedyny sposób to ustawienie strony kodowej na System.Text.Encoding.Default

	if (!File.Exists(path))
		{
			sw = File.CreateText(path);
			sw.WriteLine("{0};{1:dd.MM.yyyy};{1:T}", "START", DateTime.Now);
			sw.Close();
		}
			
			var date = DateTime.Now;
			sw = new StreamWriter(path, true,System.Text.Encoding.Default);

			sw.WriteLine("{0};{1:dd.MM.yyyy};{1:T};{2};{3}", Nrpers.Text, DateTime.Now, Folderkoncowy.Text, "ZATWIERDZONE");
			sw.WriteLine("Grzegrzółka");
			sw.Close();

 

 

 

 

komentarz 22 marca 2021 przez disaster Bywalec (2,120 p.)

Działa!

sw = new StreamWriter(path, true, System.Text.Encoding.Default) ;

Dziękuję! 

+1 głos
odpowiedź 22 marca 2021 przez Velta Maniak (52,370 p.)

Spodziewam się, że plik wynikowy CSV otwierasz później w Excelu. Polskie znaki są, tylko on sobie nie radzi z plikami zapisanymi bez znaku BOM. Wystarczy zapisać ze znakiem BOM i powinno działać:

new StreamWriter(path, true, new UTF8Encoding(true));

 

Podobne pytania

0 głosów
1 odpowiedź 839 wizyt
pytanie zadane 26 lipca 2018 w C# przez Siewier97 Nowicjusz (120 p.)
0 głosów
1 odpowiedź 456 wizyt
pytanie zadane 11 maja 2020 w C i C++ przez Majster6918 Gaduła (4,030 p.)
0 głosów
1 odpowiedź 232 wizyt

92,669 zapytań

141,568 odpowiedzi

320,037 komentarzy

62,034 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...