Последние записи
- Удаление папки с файлами
- Распечатка файла
- Преобразовать массив байт в вещественное число (single)
- TChromium (CEF3), сохранение изображений
- Как в Delphi XE обнулить таймер?
- Изменить цвет шрифта TextBox на форме
- Ресайз PNG без потери прозрачности
- Вывод на печать графического файла
- Взаимодействие через командную строку
- Перенести программу из Delphi в Lazarus
Интенсив по Python: Работа с API и фреймворками 24-26 ИЮНЯ 2022. Знаете Python, но хотите расширить свои навыки?
Slurm подготовили для вас особенный продукт! Оставить заявку по ссылке - https://slurm.club/3MeqNEk
Online-курс Java с оплатой после трудоустройства. Каждый выпускник получает предложение о работе
И зарплату на 30% выше ожидаемой, подробнее на сайте академии, ссылка - ttps://clck.ru/fCrQw
22nd
Авг
Строки в C++, отличие char* и wchar_t*
Posted by obzor under c/c++
Объясните кто-то — чем отличаются строки char* и wchar_t* ?
1)wchar_t* — это вроде как Unicode строка (sizeof(wchar_t) выдает 2 байта на символ) — этот тип строки «хавает» символы любого алфавита.
2)а вот char* — это что за строка (sizeof(char) выдает 1 байт на символ)? Multi-Byte строка что ли? В таком случае выходи тоже юникод, тогда какой — UTF7 или UTF8? Или же это вобще ASCII строка?
Но вот в VS в настройках проекта есть опция Character Set — которая меняет представление строк с Unicode на Multi-Byte — но каких строк, если wchar_t* и char* — это уже какие-то типы строк (вопросы в пунктах 1 и 2)?
wchar_t в винде — это подмножество уникода UCS-2 (с фиксированной длинной символов)
wchar_t в unix — это utf-32 и занимает соответственно 4 байта
в обычном чаре может быть как однобайтовая, так и мультибайтовая кодировка (utf-8)
Но вот в VS в настройках проекта есть опция Character Set — которая меняет представление строк с Unicode на Multi-Byte — но каких строк, если wchar_t* и char* — это уже какие-то типы строк (вопросы в пунктах 1 и 2)?
эта настройка в основном для WinAPI и оберток TCHAR, LPCTSTR etc
char — это знаковый 8 бит тип. Будет он хранить UTF7, UTF8, ANSI, ASCII или что-то еще это по барабану — это зависит от того, как интерпретировать данный.
Стандартное API Windows интерпретирует wchar_t как UCS2 (но ничего вам не мешает хранить там для себя что угодно в виде того же UTF16 скажем) а char как ANSI. Внутренне на всех NT базированных платформах все переводится в wchar_t/UCS2
Похожие статьи
Купить рекламу на сайте за 1000 руб
пишите сюда - alarforum@yandex.ru
Да и по любым другим вопросам пишите на почту
пеллетные котлы
Пеллетный котел Emtas
Наши форумы по программированию:
- Форум Web программирование (веб)
- Delphi форумы
- Форумы C (Си)
- Форум .NET Frameworks (точка нет фреймворки)
- Форум Java (джава)
- Форум низкоуровневое программирование
- Форум VBA (вба)
- Форум OpenGL
- Форум DirectX
- Форум CAD проектирование
- Форум по операционным системам
- Форум Software (Софт)
- Форум Hardware (Компьютерное железо)