wtorek, 7 lutego 2017

Dźwięki w Visual Studio

Ostatnio trafiłem na ciekawą funkcję systemu Windows. Otóż dźwięki systemowe zawierają sekcję Microsoft Visual Studio, gdzie możemy przypisać dźwięk do niektórych zdarzeń.


Jest to pomocne przy pracy z dużymi projektami, które budują się na tyle długo, że powodują rozproszenie uwagi. Dźwięk zagrany na przy udanym/nieudanym budowaniu pomaga się oderwać od przeglądania internetu.

środa, 4 czerwca 2014

Polskie znaki w pliku CSV, epizod drugi

W poprzednim wpisie opisałem jak wymusić na Exelu kodowanie UTF8. Okazuje się, że dodanie preambuły poprawia wyświetlanie znaków, ale ma też wpływ na okno dialogowe "Zapisz Jako".



Jak widać na załączonym obrazku, nie wypełnia się domyślna nazwa pliku, oraz "Zapisz jako typ" ustawia się na *.txt zamiast *.csv.
Z pomocą przychodzi kodowanie Windows-1250.


var encoding = Encoding.GetEncoding("windows-1250");
byte[] bytes = encoding.GetBytes(csv.Replace("\r\n", "\n"));
bytes = encoding.GetPreamble().Concat(bytes).ToArray();


Dzięki temu Excel nadal wyświetla poprawne znaki, ale dodatkowo nie tracimy poprawnych wartości w "Zapisz jako".

środa, 30 kwietnia 2014

Polskie znaki w pliku CSV

Często musimy wygenerować pliki CSV po stronie ASP.NET. Niestety użycie kodowania UTF8 nie gwarantuje poprawnego wyświetlania polskich znaków w Excelu.

Wygląda na to, że Excel domyślnie nie stosuje kodowania UTF8. Aby "zmusić" go do tego, należy dodać BOM na początku strumienia.

string csv = GenerateCsv();
var encoding = Encoding.UTF8;
byte[] bytes = encoding.GetBytes(csv);
bytes = Encoding.UTF8.GetPreamble().Concat(bytes).ToArray();
// ... return application/octet-stream with filename=something.csv 

 Teraz otwierając ściągnięty plik w Excelu, widzimy polskie znaki.




Żródło:http://stackoverflow.com/questions/4414088/how-to-getbytes-in-c-sharp-with-utf8-encoding-with-bom