1 Востаннє редагувалося oldebolkan (02.11.2017 16:47:55)

Тема: Українська літера і.

Як зробити щоб коректно відображалася українська літера і при вводі її з української клавіатури.
setlocle відображає все крім і . Літери ї є виводить .Замість і виводить ?.

#include <stdio.h>
#include<locale.h>
int main(void)
{
    char *locale=setlocale (LC_ALL,"");
    printf("Є є ї Ї f іііі ІІІІІ IIII iiiii ");
    return 0;
}

2

Re: Українська літера і.

Встановити собі нормальну операційну систему, а не ту, що використовує прадавнє нестандартне кодування CP-866.

3 Востаннє редагувалося oldebolkan (02.11.2017 18:49:42)

Re: Українська літера і.

koala написав:

Встановити собі нормальну операційну систему, а не ту, що використовує прадавнє нестандартне кодування CP-866.

Windows 10 pro; Ноутбук придбав цієї осені. Прадавнього нестандартного кодування не повинно бути.
Використовою кодування ANSI.

4

Re: Українська літера і.

Ну так це кодування і є прадавнім раритетом.

5

Re: Українська літера і.

Просто послуговуйтесь латинською літерою, або є талмуд від коали про кодування.

6

Re: Українська літера і.

koala написав:

Встановити собі нормальну операційну систему, а не ту, що використовує прадавнє нестандартне кодування CP-866.

Ніщо не заважає змінити в консолі cp866 на cp1251 командою chcp. Якщо людина не може цього зробити під віндою, то переходити на лінукс їй об'єктивно ще рано.

7

Re: Українська літера і.

oldebolkan написав:
koala написав:

Встановити собі нормальну операційну систему, а не ту, що використовує прадавнє нестандартне кодування CP-866.

Windows 10 pro; Ноутбук придбав цієї осені. Прадавнього нестандартного кодування не повинно бути.
Використовою кодування ANSI.

«Кодування ANSI» — це, на вінді з українською локаллю, кодування cp1251 (воно ж windows-1251). Літера «і» в ньому є, тому проблем нема. Таке кодування стоїть за замовчуванням у блокноті та багатьох інших програмах з граф. інтерфейсом. При бажанні, його можна використовувати і в консолі, але для цього треба зробити деякі додаткові дії (chcp 1251 плюс вибір векторних шрифтів у налаштуванні консолі).

Проте, за замовчуванням у консолі використовується кодування cp866 (в якому українські літери «і» та «ґ» відсутні) — морально застаріле в наш час, але його продовжують використовувати для збереження сумісності з софтом, написаним раніше, і для сумісності з текстовим повноекранним режимом (чого ANSI-кодування не може).

Власне, й windows-1251 застаріло, коли скрізь використовується utf-8 (і, технічно, utf-8 також можна зробити доступним у консолі командою chcp 65001 — проте, в WinXP цей режим працював вкрай ненадійно, і хоча в пізніших версіях баги виправили, ним рідко користуються). Тоді як у сучасних збірках лінукса в консолях вже зразу використовується utf-8 (сучасне кодування, що охоплює всі доступні символи різноманітних писемностей).

Подякували: leofun011