У меня есть строка Unicode, хранящаяся в CString
, и мне нужно знать число байтов, которое эта строка занимает в кодировке UTF-8. Я знаю, что у CString есть метод getLength()
, но он возвращает количество символов, а не байтов.
Я пытался (помимо прочего) преобразовать в массив символов, но я получаю (логически, я думаю) только массив wchar_t
, так что это не решает мою проблему.
Чтобы было ясно о моей цели. Для ввода скажем "aaa"
Я хочу "3" в качестве вывода (поскольку "a" занимает один байт в UTF-8). Но для ввода «āaa» я бы хотел видеть вывод «4» (поскольку ā — двухбайтовый символ).
Я думаю, что это должен быть довольно распространенный запрос, но даже после 1,5 часов поиска и экспериментов я не смог найти правильное решение.
У меня очень мало опыта программирования под Windows, поэтому, возможно, я упустил какую-то важную информацию. Если вы чувствуете, как это, пожалуйста, дайте мне знать, я добавлю любую информацию, которую вы запрашиваете.