Информация об изменениях

Сообщение Re[3]: В чём отличие функций MultiByteToWideChar и AnsiToOem от 30.01.2019 14:10

Изменено 30.01.2019 14:15 Videoman

Re[3]: В чём отличие функций MultiByteToWideChar и AnsiToOem ?
Здравствуйте, B0FEE664, Вы писали:

BFE>Здравствуйте, Videoman, Вы писали:


BFE>Функция MultiByteToWideChar переводит не только однобайтовые, но и многобайтовые (мультибайтные?) представления строк. Мультибайтные — это такие, где один символ кодируется одним или большим числом байт. Т.е. в одной строке часть символов кодируется одним байтом, часть — двумя и т.д.. Например UTF-8 — это мультибайтовая кодировка, хотя и Unicode.


Да. Так и есть. Тогда точнее так: функции переводят из/в ANSI/UNICODE различные кодировки переменной длины в кодировки фиксированной длины. Интересно что они понимают под WideChar ? UCS2 ? Но вроде как Windows уже давно поддерживает полноценный UTF-16. Все-таки логика названия функций от меня ускользает.
Re[3]: В чём отличие функций MultiByteToWideChar и AnsiToOem
Здравствуйте, B0FEE664, Вы писали:

BFE>Здравствуйте, Videoman, Вы писали:


BFE>Функция MultiByteToWideChar переводит не только однобайтовые, но и многобайтовые (мультибайтные?) представления строк. Мультибайтные — это такие, где один символ кодируется одним или большим числом байт. Т.е. в одной строке часть символов кодируется одним байтом, часть — двумя и т.д.. Например UTF-8 — это мультибайтовая кодировка, хотя и Unicode.


Да. Так и есть. Тогда точнее так: функции переводят из/в ANSI/UNICODE различные кодировки переменной длины в кодировки фиксированной длины. Интересно что они понимают под WideChar ? UCS2 ? Но вроде как Windows уже давно поддерживает полноценный UTF-16. Все-таки логика названия функций от меня ускользает.

P.S. А ну в MSDN так и написано: начиная с WindowsXP все переводится в "настоящий" UTF-16 c суррогатными парами. Т.е. Функции переводят из различных кодировок переменной длины в UTF-16 переменной длины. Н-да-а-а