Проблема с чтением турецкого символа в массиве символов - PullRequest
0 голосов
/ 20 октября 2019

У меня проблема с моим кодом, я думаю, что C # не читает турецкие буквы.

Вот мой код;

        Console.WriteLine("Lütfen metin giriniz ve ardından 'ENTER' tuşuna basınız.");
        string Text = Console.ReadLine();//Klavyeden metin giriyoruz.

        char[] chr = { 'a', 'b', 'c', 'ç', 'd', 'e', 'f', 'g', 'ğ', 'h', 'ı', 'i', 'j', 'k', 'l','m','n',
        'o','ö','p','r','s','ş','t','u','ü','v','y','z','q','w','x'};

        int[] chrCount = new int[chr.Length];

        Text = Text.ToLower();

        for (int i = 0; i < Text.Length; i++) {
            for (int j=0;j<Text.Length;j++) {
                if (Text[i]==chr[j]) {         
                chrCount[j]++;
                                     }
                                            }
                                              }


        for (int i = 0; i < chr.Length; i++) {
            if (chrCount[i] > 0) {
                Console.WriteLine(chr[i]+" "+chrCount[i]);

Когда я набираю "tahsin başar paksoy", это нене показывает буквы после "ş".

Как мне решить эту проблему?

С уважением.

1 Ответ

0 голосов
/ 20 октября 2019

Вам необходимо установить Console.OutputEncoding и Console.InputEncoding .

По умолчанию консоли используют кодовую страницу по умолчанию вашей системы. Похоже, кодовая страница вашей системы по умолчанию не поддерживает турецкие символы.

Вы можете установить его в UTF-8, чтобы поддерживать все символы Юникода:

Console.OutputEncoding = Encoding.UTF8;
Console.InputEncoding = Encoding.UTF8;
...