LINUX.ORG.RU

Изменение кодировки терминала

 , ,


0

1

Приветствую всех! Нужно изменить кодировку терминала и клавиатуры с UTF-8 на cp1251. Как это сделать? Какие файлы нужно править?

(если кто спросит, зачем это нужно: пишу программу, где надо работать с вводимыми с клавиатуры символами кириллицы, а символы кириллицы в UTF-8, в отличие от cp1251, нельзя закодировать в char)

В настройках терминала. В xfce4-terminal – ПКМ – Настройки – Дополнительно

Parthen ★★
()

«Здравствуйте, помогите сломать ноги, чтобы ходить на костылях».

thesis ★★★★★
()

Конкретизирую вопрос. Сейчас при запуске /etc/init.d/keymaps restart выходит Setting keyboard mode [UTF-8] Что надо прописать в /etc/conf.d/keymaps, чтобы этот keyboard mode поменять?

Reymet_2
() автор топика
Ответ на: комментарий от Reymet_2

Ты не путай системную локаль и локаль в твоем терминале. Если ты махнешь во всей системе на 1251, то может быть не очень потом. Поэтому лучше поменять в конкретном терминале, который ты используешь. Как пример тебе выше сказали, как сделать в терминале в крысе. Какой там у тебя — никто не знает, ты же не говоришь.

Zhbert ★★★★★
()
Ответ на: комментарий от xmikex

Пытаюсь, но получается какая-то лажа. Выводятся нормально, но wchar L"Б" и Б, введённый с клавиатуры через wcin - это почему-то оказывается разные символы

Reymet_2
() автор топика
Ответ на: комментарий от Zhbert

Ну вообще у меня xterm

А как в системе махнуть? Какая переменная отвечает за keyboard mode. Локаль и LC_ALL в /etc/env.d/02locale менял, ничего не изменилось

Reymet_2
() автор топика
Ответ на: комментарий от Reymet_2

А как в системе махнуть?

Так ты систему забыл указать! Судя по cp1251 - речь вообще о Винде идет.

sigurd ★★★★★
()

Почему cp1251? Чем koi8 не устраивает?

А если серьёзно, то использование char это условие «лабораторки»? Может стоит огласить полное техническое задание на этот «проект».

master_0K
()

И здесь евангелисты юникода прискакали, только забывают уточнять что под киррилицу в cp1251 выделяется 1 байт, а в UTF-8 уже 2 байта. В 2 раза больше из-за этого место уходит.

gtk3 ★★★
()

а символы кириллицы в UTF-8, в отличие от cp1251, нельзя закодировать в char

  1. Можно. :) Только надо помнить, что твой char будет означать не символ, а байт.

  2. Как уже написали выше — чем обусловлено применение именно char? Я вот вообще обычно с QString работаю, там по дефолту UTF-32 в линуксе и UTF-16 в винде. Но да, это Qt и c++. Про wchar_t выше тоже уже написали. Может, действительно стоит описать решаемую задачу более полно, и ЯП указать?

  3. Если это не лабораторка, а что-то полезное — тебе твой cp1251 может вылезти боком в другом месте.

hobbit ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.