Сообщение 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. Все-таки логика названия функций от меня ускользает.
P.S. А ну в MSDN так и написано: начиная с WindowsXP все переводится в "настоящий" UTF-16 c суррогатными парами. Т.е. Функции переводят из различных кодировок переменной длины в UTF-16 переменной длины. Н-да-а-а
BFE>Здравствуйте, Videoman, Вы писали:
BFE>Функция MultiByteToWideChar переводит не только однобайтовые, но и многобайтовые (мультибайтные?) представления строк. Мультибайтные — это такие, где один символ кодируется одним или большим числом байт. Т.е. в одной строке часть символов кодируется одним байтом, часть — двумя и т.д.. Например UTF-8 — это мультибайтовая кодировка, хотя и Unicode.
Да. Так и есть. Тогда точнее так: функции переводят из/в ANSI/UNICODE различные кодировки переменной длины в кодировки фиксированной длины. Интересно что они понимают под WideChar ? UCS2 ? Но вроде как Windows уже давно поддерживает полноценный UTF-16. Все-таки логика названия функций от меня ускользает.
P.S. А ну в MSDN так и написано: начиная с WindowsXP все переводится в "настоящий" UTF-16 c суррогатными парами. Т.е. Функции переводят из различных кодировок переменной длины в UTF-16 переменной длины. Н-да-а-а
Re[3]: В чём отличие функций MultiByteToWideChar и AnsiToOem
Здравствуйте, B0FEE664, Вы писали:
BFE>Здравствуйте, Videoman, Вы писали:
BFE>Функция MultiByteToWideChar переводит не только однобайтовые, но и многобайтовые (мультибайтные?) представления строк. Мультибайтные — это такие, где один символ кодируется одним или большим числом байт. Т.е. в одной строке часть символов кодируется одним байтом, часть — двумя и т.д.. Например UTF-8 — это мультибайтовая кодировка, хотя и Unicode.
Да. Так и есть. Тогда точнее так: функции переводят из/в ANSI/UNICODE различные кодировки переменной длины в кодировки фиксированной длины. Интересно что они понимают под WideChar ? UCS2 ? Но вроде как Windows уже давно поддерживает полноценный UTF-16. Все-таки логика названия функций от меня ускользает.
P.S. А ну в MSDN так и написано: начиная с Windows Vista все переводится в "настоящий" UTF-16 c суррогатными парами. Т.е. Функции переводят из различных кодировок переменной длины в UTF-16 переменной длины. Н-да-а-а
BFE>Здравствуйте, Videoman, Вы писали:
BFE>Функция MultiByteToWideChar переводит не только однобайтовые, но и многобайтовые (мультибайтные?) представления строк. Мультибайтные — это такие, где один символ кодируется одним или большим числом байт. Т.е. в одной строке часть символов кодируется одним байтом, часть — двумя и т.д.. Например UTF-8 — это мультибайтовая кодировка, хотя и Unicode.
Да. Так и есть. Тогда точнее так: функции переводят из/в ANSI/UNICODE различные кодировки переменной длины в кодировки фиксированной длины. Интересно что они понимают под WideChar ? UCS2 ? Но вроде как Windows уже давно поддерживает полноценный UTF-16. Все-таки логика названия функций от меня ускользает.
P.S. А ну в MSDN так и написано: начиная с Windows Vista все переводится в "настоящий" UTF-16 c суррогатными парами. Т.е. Функции переводят из различных кодировок переменной длины в UTF-16 переменной длины. Н-да-а-а