- Setlocale c russian linux
- Настройка русской локали в Linux
- Подготовка к настройке
- Настройка локали в CentOS, Fedora
- Настройка локали в Debian, Ubuntu
- Русский язык в консоли
- Решение
- Linux: setlocale: LC_ALL: cannot change locale (en_US.utf8) и кирилица
- Генерирование locale
- Параметры файлов локализации
- Русский язык в Linux, регистр
- Решение
Setlocale c russian linux
Если locale не равно NULL , то текущяя локаль программы изменяется в соответствии с аргументами. Аргумент category определяет, какая часть текущей локали программы подлежит изменению. LC_ALL используется для всей локали. LC_COLLATE — для соотнесения регулярных выражений (определяет значение интервалов и классов эквивалентности) и сопоставления строк. LC_CTYPE — для соотнесения регулярных выражений, классификации символов, преобразований, сравнения (с учетом регистра) и работы функций широких символов. LC_MESSAGES — для сообщений, подлежащих локализации. LC_MONETARY — для форматирования денежных единиц. LC_NUMERIC — для форматирования чисел (используется десятичный разделитель, разделители тысяч и т.п.). LC_TIME — для форматирования календаря и дат.
Аргумент locale является указателем на строку символов, содержащую установки, требуемые category . Эта строка является либо широко известной константой «C» (или «da_DK») (см. ниже), либо строкой, возвращаемой вызовом setlocale .
Если locale равна , то каждая часть локали подлежит изменению в соответствии с переменными окружения. Все детали зависят от реализации. В случае с glibc сначала (независимо от category ) проверяется переменная окружения LC_ALL, затем переменная окружения с таким же названием, что и категория (LC_COLLATE, LC_CTYPE, LC_MESSAGES, LC_MONETARY, LC_NUMERIC, LC_TIME), и в конце проверяется переменная окружения LANG. Используется первая существующая переменная окружения. Если ее значение не является правильным для локали, то локаль не изменяется, а setlocale возвращает NULL.
Локали C и POSIX являются совместимыми с другими локалями; код части LC_CTYPE соответствует 7-битному коду набора символов ASCII.
Название локали обычно имеет форму language [_ territory ][. codeset ][@ modifier ], где language является кодом языка в соответствии ISO 639, territory является кодом страны, согласно ISO 3166, а codeset является набором символов или видом кодировки, как, например, ISO-8859-1 или UTF-8 . Для вывода списка всех поддерживаемых локалей, попробуйте «locale -a». См. locale (1).
Если значение locale равно NULL , то запрашиваются параметры текущей локали, но при этом она не изменяется.
При запуске программы локаль C устанавливается по умолчанию. Программа может быть сделана совместимой со всеми типами локалей вызовом setlocale(LC_ALL, ) после инициализации программы, при использовании значений, возвращенных от вызова localeconv() для локалезависимой информации, при использовании многобайтовых функций и функций для работы с широкими символами для обработки текстов, если MB_CUR_MAX > 1 ; а также при использовании strcoll() , wcscoll() или strxfrm() , wcsxfrm() для сравнения строк.
Источник
Настройка русской локали в Linux
Чтобы изменить установленную по умолчанию локализацию в системе на русскую, необходимо выполнить несколько не сложных шагов.
Подготовка к настройке
- Подключаемся к VPS по SSH с правами root.
- Проверяем, доступна ли русская локаль в системе и её корректное название:
- В результате, при наличии локали, будет получен примерно следующий вывод:
- В нашем случае, интересует вариант ru_RU.utf8. Его мы и будем использовать далее. Поэтому скопируйте это значение в блокнот для дальнейшей вставки.
Настройка локали в CentOS, Fedora
- Создадим файл i18n, в котором затем сохраним параметры новой локали:
- В открывшемся редакторе вносим следующую информацию:
- Сохраняем изменения сочетанием клавиш CTRL+O и затем Enter.
- На этом всё, локаль изменена и теперь необходимо переподключиться в консоль, чтобы увидеть изменения. Если вы использовали VNC или другое удаленное подключение к рабочему столу, то рекомендуется и в нём произвести переподключение для применения изменений.
Настройка локали в Debian, Ubuntu
Если в шаге подготовки команда locale -a | grep ru дала пустой результат, значит русская локаль отсутствует в системе и её можно установить следующими способами:
Способ 1:
- Перенастраиваем пакет locales командой:
- В появившейся форме ищем локаль ru_RU.UTF-8 и отмечаем её нажатием пробелом, в результате перед этой локалью появится звёздочка, как показано на изображении ниже. Затем нажимаем Enter и переходим к следующему шагу.
- Следующий шаг – выбор локали по умолчанию. Выбераем русскую локаль из списка и нажмаем Enter.
- В результате будет завершена перенастройка локали и теперь необходимо только выполнить повторное подключение к консоли и к удаленному рабочему столу (если таковое используется).
Способ 2:
- Устанавливаем языковой пакет:
- Открываем текстовым редактором файл /etc/default/locale:
- Заменяем его содержимое на:
- Сохраняем изменения сочетанием клавиш CTRL+O и затем Enter.
- Выходим из консоли, а также закрываем соединение с удаленным рабочим столом (если такое соединение было) и подключаемся к этим сервисам повторно.
- На этом настройка завершена.
Источник
Русский язык в консоли
Наверное эта тема всем уже глаза мозолит
Но внятного ответа так и не нашёл
Суть: ввожу строку на русском, при выводе определённого символа этой строки отображается пресловутая кракозябра
При выводе самой строки всё нормально
Пример кода
Хотя тут и так всё ясно.
Как сделать русский язык в консоли Windows?
Всем доброй ночи! То есть я знаю, как его сделать, но на практике ничего не получается. Имеем.
Русский язык
Всем добрый день! Как исправить проблему того, что в консоле вместо русского языка отображаются.
Русский язык в консоли
Здравствуйте. Чего-то не разберусь с русским языком. setlocale(LC_ALL,»RUSSIAN»); и.
Русский язык в консоли
Скажу сразу, что закрепленную тему я прочитал, но не очень понял, как это реализовать. Вот код.
Решение
Помощь в написании контрольных, курсовых и дипломных работ здесь.
Русский язык в консоли
Здравствуйте, Столкнулся с банальной проблемой При вводе-выводе в текстовый файл и в консоль.
Русский язык в консоли
Здравствуйте.У меня следующая проблема:Когда я записываю русский текст в текстовый файл в файле.
Русский язык в консоли
вот я написал программу в консольном окне то что я писал по русски пишет какимито игроглифами как.
Русский язык в консоли
для работы с русским языком использую: #include setlocale(LC_CTYPE, «Russian»); но.
Русский язык в консоли
Как сделать запись в файл и чтение с него русскими буквами а не иероглифами?
Источник
Linux: setlocale: LC_ALL: cannot change locale (en_US.utf8) и кирилица
Локали (locale) — набор переменных, которые отвечают за времени и даты (например — первый день недели), кодировка символов (например — отображение кирилических символов в консоли), дефолтный порядок отображения файлов (отображать ли скрытые. сортировать по имени или размеру и т.д.).
Например, при запуске vifm в KDE Konsole на Arch Linux — не отображается кирилица:
А в консоли после выхода их vifm появляется сообщение:
Генерирование locale
Проверяем содержимое каталога /usr/lib/locale/ , в которой должны хранится сгенерированные локали:
Или используем locale -a , что бы отобразить доступные сейчас в системе локали:
Проверяем файл locales.gen — ищем en_US.UTF-8 :
Раскоментируем en_US.UTF-8 UTF-8 , и генерируем локали:
Проверяем ещё раз:
Либо с помощью localedef :
Параметры файлов локализации
Узнать дефолтную сортировку дней недели — какой будет первым, вторым и т.д.:
Локализации описываются в файлах в каталоге /usr/share/i18n/locales/ , из которого генерируется локаль во время выполнения locale-gen , например для en_US локаль LC_TIME описана как:
А для ru_RU в LC_TIME имеется опция first_weekday , см. man 5 locale, которая указывает первый день недели, т.е. понедельник (второй день из списка дней недели, который всё-таки начинается с воскресенья):
Источник
Русский язык в Linux, регистр
Почему Linux понимает русский язык, и как разучить его это делать?
Здравствуйте! Зная, что в Linux принята неравномерная кодировка UTF-8, я удивлялся, как считай.
Xcode , С++ и русский язык: как вывести в файл русский текст без сбитой кодировки?
Как сделать так, чтобы после некоторых манипуляций в файл выводился русский текст без сбитой.
Английский язык для окна ввода пароля, русский язык для самой системы
собственно, сабж. у меня пароль на английском языке, при включении компьютера по умолчанию стоит.
Русский язык
Всем добрый день! Как исправить проблему того, что в консоле вместо русского языка отображаются.
Решение
если вкратце: жизнь — боль и страдание.
с++ не осилил локали.
единственное, что стабильно работает — это английский текст (сишная локаль).
национальные локали либо не работают вообще, либо глючат.
если поприседать вокруг локалей, то можно родить свою собственную,
которая сможет сделать вам хорошо.
но! есть нюанс.
нужно учитывать грандиозный фейл дизайна стандартной библиотеки:
утф-кодировки допускают ненормированный текст:
например в немецком языке сочетания некоторых букв идущих подряд могут обозначать одну.
однако стандартные трейты работают с отдельным символом, а не с полноценным текстом.
что делает невозможной в принципе полноценную работу с утф-кодировкам.
как бы вы не пытались.
исходя из этого можно придти к выводу,
что проще использовать специфическое апи системы,
либо толстые специализированные библиотеки.
что касается стандартных средств: максимум, что тут можно сделать:
родить собственную локаль, которая сможет корректно работать только с нормализированным текстом.
то есть, с текстом, в котором национальные символы можно представить одной буквой.
Источник