Консультация № 176144
19.01.2010, 21:46
0.00 руб.
0 9 2
Здравствуйте Уважаемые эксперты.
Я не уверен, что именно эта рассылка подходит для данного вопроса, но другой, более подходящей не нашел.
У меня вопрос на счет кодировки. Когда пишу программы в Borland C++ 3.1 то в файлах СРР текст, если открыть блокнотом отображается на русском, а если его открыть в MS Visual Studio 2008 то вместо русского текста отображаются непонятные иероглифы. Так вот, я хотел бы знать что за несовместимость кодировок, где какая используется? Как можно перевести из одной в другую?
Например слово : "Кодировка", выглядит следующим образом: "Љ®¤Ёа®ўЄ".
Пожалуйста, подскажите.

Обсуждение

давно
Профессор
230118
3054
19.01.2010, 21:49
общий
Dimon4ik:
Это досовская кодировка. Чтобы перевести, используйте программу "Штирлиц". Ее легко найти в Интернете.
Неизвестный
19.01.2010, 22:04
общий
Dimon4ik:
Borland C++ 3.1 работает в ДОС и, соответственно, используется кодовая таблица DOS (CP866, она же — альтернативная кодировка).
Блокнот (notepad) — программа Windows и использует шрифты в кодировке windows-1251 (для русского языка).
Программ для перекодирования — множество. Некоторые (если не многие) текстовые редакторы работают с разными кодировками, например, коммерческий UltraEdit или бесплатный Bred. Стоит только поискать "замену блокноту".
Неизвестный
19.01.2010, 22:11
общий
это ответ
Здравствуйте, Dimon4ik!

Текст в вашем файле, в кодировке oem dos cp-866.
В блокноте можно изменить шрифт, скажем вместо terminal на times new roman.
Програм для перекодировки много. В вашем случае можно даже вордпадом. Запустить, нажать открыть, поставить ms-dos и выбрать нужный файл, а потом сохранить его в windows cp-1251 или лучше даже в unicode.
Правда я не уверен, что старенький borland юникод поймёт.

Можно сделать по другому, опять вордпадом открыть, как текст ms-dos.
А потом просто скопировать текст в проект студии.

Возможно, что в ней вообще возможно выставлять кодировки текста, но тут не знаю, не пользуюсь.

И вообще, это смотря для каких целей.
Если вы делаете консольные програмки, то проще всего их компилировать в кодировке cp-866.
типа, чтобы сработал
printf("Привет, мир!\r\n");

Хотя я делаю их в юникоде, и текст отображаеться нормально и выводиться тоже нормально.

Но... Вообще-то строки, надо писать в файлах ресурсов, так что в какой кодировке сам исходник, это важно только для комментариев.
5
Спасибо за быструю и отличную помощь!
Неизвестный
19.01.2010, 22:11
общий
Dimon4ik:
Откройте файл в блокноте и выберите "сохранить как". После этого выберите кодировку. UTF-8, например.
Неизвестный
19.01.2010, 23:00
общий
Я так понимаю, что в DOS используется таблица ASCII (только для латинских символов).
А для хранения русских в компьютере какая используется? Видимо она не совсем совместима с моей.
Вот результат перевода с помощью той таблицы, что у меня:
Код:
Символ   Двоичная форма   Шестнадцатеричная форма
К 10001010 8A
о 10101110 AE
д 10100100 A4
и 10101000 A8
р 11100000 E0
о 10101110 AE
в 10100010 A2
к 10101010 AA
а 10100000 A0

Что за таблица у меня? Она не используется в компьютере?
давно
Профессор
230118
3054
19.01.2010, 23:06
общий
Dimon4ik:
Русские символы кодируются символами после 128. Буква К - 10 буква, заглавная, поэтому 8А - 128+10
Неизвестный
19.01.2010, 23:08
общий
А! Понял все! Проблема решена!
Неизвестный
20.01.2010, 06:27
общий
это ответ
Здравствуйте, Dimon4ik.
В борланде 3.1 используется кодировка DOS (cp866). Visual Studio под Windows используется кодировка windows (cp1251). Перевести из одной в другую можно текстовым редактором например Notepad++, или в крайнем случае Microsoft Word (сохранить как и выбрать соответствующий текстовый формат) только в последнем случае будьте внимательны, сохраняйте именно в текстовом формате и проверяйте потом расширение у файла.
P.S. Блокнот при выборе шрифта Terminal показывает корректно DOS кодировку, при выборе других шрифтов Windows кодировку.
5
Неизвестный
20.01.2010, 16:23
общий
Какая кодировка используется в Borland C++ Builder 6 в компоненте TMemo?
Из него сохраняю в блокнот и открываю с помощью Visual Studio 2008 - все нормально.
Когда копирую в Mail.ru агент кодировка снова сбивается и появляются непонятные символы...
Форма ответа