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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
vdvoid
3 / 3 / 0
Регистрация: 26.02.2011
Сообщений: 99
#1

Вопрос по кодировке - C++

20.03.2011, 23:18. Просмотров 573. Ответов 5
Метки нет (Все метки)

Вопрос необычный, но совершенно не понимаю как система работает с кодовыми таблицами, и почитать об этом не где, в инете есть инфа только про сами кодовые таблицы. Заранее спасибо.
1. Где в Windows хранятся кодовые таблицы?
2. Как программа, например блокнот, узнает с помощью какой кодовой таблицы преобразовывать байты в понятный текст, неужели перебором байтом для нахождения подходящей кодовой таблицы?
3. Только начинаю писать на C++ (до этого писал web и особо не вникал в кодировки), и тут появилось непонимание всего этого.. Когда компилируется файл с приложением:
3.1 В какой кодировке хранится скомпилированный код программы?
3.2 Как система разбирает этот код и как она узнает о кодировке проекта. Типы char и wchar_t - опять же какие это кодировки?
3.3 Строковые типы char и wchar_t это всегда 1 и 2 байта, но как быть с utf, где для записи одного символа может быть как 1 так и 4 байта??
3.4 Кодировка проекта (в VS) означает кодировку текстовых файлов .cpp? где тогда задается кодировка строковых типов.
В общем немогу найти где об этом почитать, если у когото есть ссылочка, киньте почитать) спс
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.03.2011, 23:18     Вопрос по кодировке
Посмотрите здесь:

C++ Общий вопрос по кодировке программ под Windows
C++ Вопрос о кодировке
Создание файла в UTF-8 кодировке C++
Вопрос по кодировке ASC II C++
В какой кодировке getch() возвращает символ? C++
C++ Char* не в той кодировке
C++ Считывание из файла в нужной кодировке
Записать информацию в файл в нужной кодировке C++
Записать в блокнот в кодировке UTF-8 C++
C++ Вывод строки в неверной кодировке
C++ Формат строки в кодировке Unicode?
C++ О кодировке бинарных файлов

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
asics
Freelance
Эксперт C++
2842 / 1779 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
20.03.2011, 23:28     Вопрос по кодировке #2
Цитата Сообщение от vdvoid Посмотреть сообщение
1. Где в Windows хранятся кодовые таблицы?
Все программы -> Стандартные -> Служебные -> Таблица символов - это ?
vdvoid
3 / 3 / 0
Регистрация: 26.02.2011
Сообщений: 99
21.03.2011, 00:00  [ТС]     Вопрос по кодировке #3
мм не то)
nxnx
Формучанин
362 / 293 / 16
Регистрация: 02.11.2010
Сообщений: 1,234
21.03.2011, 00:32     Вопрос по кодировке #4
Цитата Сообщение от vdvoid Посмотреть сообщение
мм не то)
C:\WINDOWS\system32\*.nls
msdn:
About National Language Support

Добавлено через 1 минуту
Цитата Сообщение от vdvoid Посмотреть сообщение
3.1 В какой кодировке хранится скомпилированный код программы?
К коду программы не применимо понятие кодировки.
Строки, и любой другой англоязычный текст хранится хрен знает в какой кодировке, но коды символов всегда одни и теже. Русскоязычный текст хранится в той кодировке, что и исходный файл.

Добавлено через 4 минуты
Цитата Сообщение от vdvoid Посмотреть сообщение
3.4 Кодировка проекта (в VS) означает кодировку текстовых файлов .cpp? где тогда задается кодировка строковых типов.
Русские константы сохраняются в кодировке файла.
Если ты пишешь программу только на английском, абсолютно пофигу какая кодировка.
vdvoid
3 / 3 / 0
Регистрация: 26.02.2011
Сообщений: 99
21.03.2011, 00:57  [ТС]     Вопрос по кодировке #5
Код программы представлен в двоичном коде, который записан не просто так а посредством какойто кодировки, что бы при выполнении программы можно было считать двоичные данные и преобразовать в понятные символы. Вот что происходит при компиляции не понимаю, если можно задать в настройках одну кодировку тогда понятно, но есть же ситуации где в проектах и char и wchar_t и в них разный размер а соответственно разные кодировки

Добавлено через 11 минут
char a = 'b';
char b = 'ы';
char c = 'ﭯ';

cout << sizeof(char); // 1

вот здесь размер char 1 байт
сохранить последние две константы можно только с помощью других типов, в какой кодировке они сохраняться)
nxnx
Формучанин
362 / 293 / 16
Регистрация: 02.11.2010
Сообщений: 1,234
21.03.2011, 01:10     Вопрос по кодировке #6
Цитата Сообщение от vdvoid Посмотреть сообщение
Код программы представлен в двоичном коде, который записан не просто так а посредством какойто кодировки, что бы при выполнении программы можно было считать двоичные данные и преобразовать в понятные символы.
Код программы представлен в виде последовательности байтов, а не в двоичном виде.
Это человек представляет его в двоичном.
Понятие кодировка не применима к коду. Во время выполнения программы не происходит никаких преобразований символов. Как символы строковой константы записаны, так они и скормятся функции.

Добавлено через 7 минут
Более подробно о том что такое код: Структура команд Intel 80x86
Yandex
Объявления
21.03.2011, 01:10     Вопрос по кодировке
Ответ Создать тему
Опции темы

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