Форум программистов, компьютерный форум CyberForum.ru

Кодировки. Как сменить? Какая по умолчанию? Какую использовать? - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 19, средняя оценка - 4.68
Flaker
1 / 1 / 0
Регистрация: 07.07.2012
Сообщений: 90
28.08.2013, 16:57     Кодировки. Как сменить? Какая по умолчанию? Какую использовать? #1
1) Какая кодировка стоит по умолчанию в C++ проектах visual studio 10?
2) Как эту кодировку сменить?
3) Как сделать возможным использование русского и других языков в программе

4) При получении пути к программе функцией GetModuleFileName и последующем выводе этого пути в консоль функцией cout, названия папок на русском языке выводятся непонятными символами. В самой переменной путь храниться в нормальном виде (Пригоден ли он для подключения dll по этому пути)?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Flaker
1 / 1 / 0
Регистрация: 07.07.2012
Сообщений: 90
28.08.2013, 23:13  [ТС]     Кодировки. Как сменить? Какая по умолчанию? Какую использовать? #21
А лучше так:
И даже так выводит только "С:\Users\"

Сменил на Non-set, показано теперь нормально все...

Но если у пользователя шрифт в консоли точечный, то он не увидит русских символов?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
28.08.2013, 23:23     Кодировки. Как сменить? Какая по умолчанию? Какую использовать? #22
Наверное, что-то по русски после Users\? Попробуйте, в начале main(), добавить:
C++
1
setlocale(0, "");
Может поможет. Проверить нет возможности.

Добавлено через 1 минуту
Цитата Сообщение от Flaker Посмотреть сообщение
Сменил на Non-set, показано теперь нормально все...
Без изменений в коде?

Добавлено через 1 минуту
Цитата Сообщение от Flaker Посмотреть сообщение
Но если у пользователя шрифт в консоли точечный, то он не увидит русских символов?
Кодировки - это головная боль...

Добавлено через 57 секунд
Или пишите по английски...
Flaker
1 / 1 / 0
Регистрация: 07.07.2012
Сообщений: 90
28.08.2013, 23:28  [ТС]     Кодировки. Как сменить? Какая по умолчанию? Какую использовать? #23
Без изменений в коде?
Макросы L убрал... А так без изменений...

Спасибо за помощь)
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
28.08.2013, 23:33     Кодировки. Как сменить? Какая по умолчанию? Какую использовать? #24
setlocale(0, "") не помог, если юникод?

Добавлено через 1 минуту
Цитата Сообщение от Flaker Посмотреть сообщение
Макросы L убрал...
Это где?
Flaker
1 / 1 / 0
Регистрация: 07.07.2012
Сообщений: 90
28.08.2013, 23:39  [ТС]     Кодировки. Как сменить? Какая по умолчанию? Какую использовать? #25
Это где?
Ой, забыл, что сюда не выкладывал... Это уже остальная часть программы...

setlocale(0, "") не помог, если юникод?
Уже не стал проверять.
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
28.08.2013, 23:41     Кодировки. Как сменить? Какая по умолчанию? Какую использовать? #26
Цитата Сообщение от Flaker Посмотреть сообщение
Уже не стал проверять.
А зря, помогает. Сейчас специально добавил в путь русского:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
#include <Windows.h>
using namespace std;
 
int main()
{
    setlocale(0, "");
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
 
    wchar_t abs_path[MAX_PATH];
    int pathst = GetModuleFileName(NULL, (LPWSTR)abs_path, MAX_PATH);
    wcout << abs_path << endl;
    
    cout << "Это просто пробная строка на русском языке" << endl;
    
    system("pause");
}
Миниатюры
Кодировки. Как сменить? Какая по умолчанию? Какую использовать?  
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
28.08.2013, 23:42     Кодировки. Как сменить? Какая по умолчанию? Какую использовать? #27
Но это так, чтобы знали...
AlukardBF
 Аватар для AlukardBF
4 / 4 / 0
Регистрация: 20.08.2013
Сообщений: 24
29.08.2013, 10:52     Кодировки. Как сменить? Какая по умолчанию? Какую использовать? #28
Я в Visual C++ использую
C++ (Qt)
1
setlocale(LC_ALL, "RUS");
По крайней мере вывод работает нормально. Плюс это все без отключения Юникода и замены шрифтов консоли.
zer0mail
2184 / 1867 / 187
Регистрация: 03.07.2012
Сообщений: 6,635
Записей в блоге: 1
29.08.2013, 11:09     Кодировки. Как сменить? Какая по умолчанию? Какую использовать? #29
Это было: setlocale(0, "") работает, как setlocale(LC_ALL, "RUS")
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
29.08.2013, 16:02     Кодировки. Как сменить? Какая по умолчанию? Какую использовать? #30
Цитата Сообщение от AlukardBF Посмотреть сообщение
По крайней мере вывод работает нормально.
В этом и проблема, что только вывод.
zer0mail
2184 / 1867 / 187
Регистрация: 03.07.2012
Сообщений: 6,635
Записей в блоге: 1
29.08.2013, 16:18     Кодировки. Как сменить? Какая по умолчанию? Какую использовать? #31
Со вводом проблемы, универсального решения я не знаю, а варианты вот: О кодировках, кодовых страницах и проблемах вывода на консоль
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.08.2013, 16:58     Кодировки. Как сменить? Какая по умолчанию? Какую использовать?
Еще ссылки по теме:

C++ Какую функцию STL использовать для работы с множеством ?
Какую ide лучше использовать для c++ C++
C++ Какую запись переменных в цикле for лучше использовать?

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
SatanaXIII
Супер-модератор
Эксперт С++
 Аватар для SatanaXIII
5547 / 2561 / 233
Регистрация: 01.11.2011
Сообщений: 6,330
Завершенные тесты: 1
29.08.2013, 16:58     Кодировки. Как сменить? Какая по умолчанию? Какую использовать? #32
Просто для справки.
Yandex
Объявления
29.08.2013, 16:58     Кодировки. Как сменить? Какая по умолчанию? Какую использовать?
Ответ Создать тему
Опции темы

Текущее время: 09:17. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru