• 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#

0 głosów
218 wizyt
pytanie zadane 22 marca 2021 w C# przez disaster Bywalec (2,020 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,420 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,020 p.)

Działa!

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

Dziękuję! 

+1 głos
odpowiedź 22 marca 2021 przez Velta Nałogowiec (45,270 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ź 259 wizyt
pytanie zadane 26 lipca 2018 w C# przez Siewier97 Nowicjusz (120 p.)
0 głosów
1 odpowiedź 140 wizyt
pytanie zadane 11 maja 2020 w C i C++ przez Majster6918 Gaduła (4,030 p.)
0 głosów
1 odpowiedź 93 wizyt

86,483 zapytań

135,239 odpowiedzi

300,477 komentarzy

57,229 pasjonatów

Motyw:

Akcja Pajacyk

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

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...