LINUX.ORG.RU

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

 , ,


0

1

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

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

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

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

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

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

Reymet_2
() автор топика

Почему 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 ★★★★★
()