Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > Проблема с русской кодировкой


Автор: Sevenfold 3.5.2006, 09:34
Я новичок в программировании начал изучать Visual C++ 6.0, проблема такая: Делаю file - new - C++ Source File, пишу прогу, компилирую, а русский текст кракозябрами идет. Как мне исправить кодировку текста? smile  

Автор: darthnick 3.5.2006, 09:41
CharToOem - не помогает? 

Автор: Sevenfold 3.5.2006, 09:46
CharToOem поможет, а в самом компиляторе нет никакой опции? 

Автор: cozzzy 3.5.2006, 10:36
Код

#include "stdafx.h"
#include <locale.h>

int main(void)
{
    _wsetlocale (LC_ALL, L".866");
    std::wcout << L"Превед" << std::endl;
}

 

Автор: likehood 3.5.2006, 11:00
cozzzy, я не совсем понял зачем нужен вызов _wsetlocale (LC_ALL, L".866");
Или консоль не знает что такое unicode? 

Автор: Romikgy 3.5.2006, 11:56
Цитата(baronp @  3.5.2006,  10:00 Найти цитируемый пост)
Или консоль не знает что такое unicode? 

консоль работает с кодовой страницей 866, а текст ты набираешь (русский ) в странице 1251, отсель глюк smile

Цитата(baronp @  3.5.2006,  10:00 Найти цитируемый пост)
 _wsetlocale (LC_ALL, L".866");

по логике надо на 1251 страницу переходит smile  

Автор: likehood 3.5.2006, 12:01
Цитата(Romikgy @  3.5.2006,  11:56 Найти цитируемый пост)
консоль работает с кодовой страницей 866, а текст ты набираешь (русский ) в странице 1251, отсель глюк 

а если использовать unicode? имхо, уникод он и в африке уникод smile  

Автор: Romikgy 3.5.2006, 12:14
Цитата(baronp @  3.5.2006,  11:01 Найти цитируемый пост)
а если использовать unicode? 

можно и его , если есть желание smile 

Автор: likehood 3.5.2006, 12:20
я делаю примерно так:
Код

#define UNICODE
//...
TCHAR msg[] = TEXT("краказябка");
wprintf(TEXT("%s\n"), msg);

Выводится пустая строка. Если строку написать на инглише, выводит строку как есть. Нафига тогда нужен wprintf? 

Автор: koljan 3.5.2006, 13:08
Код

#include <iostream>
#include "StdAfx.h"
#include <locale.h>
using namespace std;
int main(void)
{
    _wsetlocale (LC_ALL, L".866");
    //std::wcout << L"Превед" << std::endl;
    wcout<<L"колян\n";
}

всё просто класно нормально работают русские буквы 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)