C# problem z polskimi znakami


(Tomcze7991) #1

Cześć :slight_smile:

 

mam problem w C# z polskimi znakami. Chodzi mi oto, że jeżeli mam 

 

Console.WriteLine("Wartość"); 

 

to litery ś i ć zamienią się w jakieś wzorki :/. Wcześniej takiego problemu nie miałem, było wszytko okej. Dopiero dzis zauważyłem ten problem :frowning: Nic nie zmieniałem w ustawieniach :stuck_out_tongue: Pomóżcie !!


(Djluki) #2

Dwie sprawy mi do głowy przyszły:

 

  1. Sprawdź ustawienia regionalne w systemie (czy masz język polski).

  2. Ustaw kodowanie wyjściowe, służy do tego (rzecz jasna, przed jakimkolwiek Write/line): 

Console.OutputEncoding = Encoding.UTF8 - przykład dla UTF-8

Windowsowe kodowanie to: Encoding.GetEncoding("Windows-1250")


(Tomcze7991) #3

Ja dopiero zaczynam programować i za bardzo nie wiem co mam zrobić :/.


(enedil) #4

@djpizmak napisał co masz zrobić. Napisz podaną linijkę w programie przed jakimkolwiek Writem.


(Djluki) #5

Najpierw sprawdź ustawienia systemowe: Panel sterowania -> Region oraz ustawienia klawiatury.

 

W Visual Studio jest obsługa takiego magicznego klawisza: F1. Ustaw kursor na poleceniu którego nie rozumiesz/nie znasz, potem F1 i masz bardzo intuicyjną pomoc z zasobów MSDN. Korzystaj z tego.

 

Przykład z kodowaniem:

 

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.OutputEncoding = Encoding.GetEncoding("Windows-1250");
            Console.WriteLine("coś z polskimi znakami");
            Console.ReadLine();
        }
    }
}

(Tomcze7991) #6

Język miałem ustawiony na angielski, ale zmieniłem na polski i dalej nic. Reszta ustawień jezyka jest dobrze ustawiona .Ja mam Środowiskoeurpojskie (windows).


(Djluki) #7

 

Wszystkie opcje językowe zmieniłeś na polski? Systemowy język, klawiatury, regionu? Ustawienia regionalne (waluta, format cyfr itp). To nie jest tylko jedno ustawienie. Sprawdź to dokładnie, a po wszystkim restart komputera.

 

Dodatkowo w Visual Studio sprawdź:

Narzędzia -> Opcje :

Środowisko -> Klawiatura -> schemat mapowania klawiatury -> domyślny

 

Sprawdzałeś ten kod ode mnie? Pomogło? Nadal były krzaczki?


(Tomcze7991) #8

Wszystko jest ustawione jak należy w opcjach też i tych w Visualu i te w komputerze :slight_smile: twój kod pierwszy który podałeś Console.OutputEncoding = Encoding.UTF8 , Encoding.GetEncoding("Windows-1250") zmienia tylko wzorek :stuck_out_tongue: ten kod późniejszy co podałeś nic nie poprawia :/. I jak napisałem wcześniej mam Środowiskoeuropejskie(windows). Nic wcześniej nie zmieniałem w ustawieniach. Właśnie mam pytanie czy zapory systemy jakieś antywirusy mogły coś namieszać powodując te problemy ? Bo w sumie pare zainstalowałem bezpłatnych z tej właśnie strony :P.


(Djluki) #9

Dla mnie masz coś nie tak z systemem operacyjnym. Sprawdziłem 

Console.WriteLine(Console.OutputEncoding.EncodingName);

na wszystkich moich komputerach (Windows 7, Windows 8 i Visual Studio 2012/2013 i zawsze mam:

Środkowoeuropejski (DOS)

a nie (Windows).

 

Posprawdzaj systemowe ustawienia językowe. 

Windowsa masz legalnego? Jaka to wersja? 


(Tomcze7991) #10

Tak mam legalnego Windowsa a dokładniej WIndows 7 Home Premium. Sprawdzałem wszystko, nie wiem co już zmienić i zrobić :stuck_out_tongue:


(Djluki) #11

Jaką wersję Visual Studio masz?

 

Odinstaluj swoje Visual Studio:

 

Deinstalator dla:

VS 2010: http://archive.msdn.microsoft.com/vs2010uninstall

VS 2012: http://support.microsoft.com/kb/2771441/EN-US#Force

 

Potem zainstaluj najnowszą wersję: 2013.


(Tomcze7991) #12

Odinstalowałem Visuala 2010 i zainstalowałem Visuala 2013 z pakietem językowym polskim. Nadal to samo, nie wykrywa mi znaków polskich :/. To coś w systemie :frowning:


(Tomcze7991) #13

Cześć rozwiązałęm chyba problem :slight_smile: było prostrze niż się wydawało :slight_smile: jak jest okno konsoli, trzeba wejść w właściwości potem czcionka  i ustawić na Lucida Console :stuck_out_tongue: