Здравствуйте, indee, Вы писали:
I>Как строку CString конвертировать в char[]?
GetBuffer(), GetBufferSetLength()
Только это будет не char[], а TCHAR[]. Если надо именно char[], то в юникодном варианте потребуется ещё конвертация WideCharToMultiByte().
Здравствуйте, indee, Вы писали:
I>Как строку CString конвертировать в char[]?
0. С какой целью?
1. Если юникод выключен, то внутри CString будет лежать массив char'ов.
Смотри методы GetString() или GetBuffer().
2. Если юникод включен, то в CString "широкие" символы. Тогда либо кастить к char* (будет доступ к строке на уровне байтов), либо придется конвертировать в анси-строку (WideCharToMultiByte в помощь).
_____________________
С уважением,
Stanislav V. Zudin
Здравствуйте, Maniacal, Вы писали:
M>Здравствуйте, indee, Вы писали:
I>>Как строку CString конвертировать в char[]?
I>>Спасибо!
M>В TCHAR можно, потому как в зависимости от того UNICODE проект или нет CString хранит или char-строку или wchar_t-строку M>
Здравствуйте, indee, Вы писали:
M>>В TCHAR можно, потому как в зависимости от того UNICODE проект или нет CString хранит или char-строку или wchar_t-строку M>>
Здравствуйте, Stanislav V. Zudin, Вы писали:
SVZ>Здравствуйте, indee, Вы писали:
I>>Из OLE получаю CString.
SVZ>С ОЛЕ всё понятно, что нужно скормить в JNI? Что должно лежать в char[]?
Здравствуйте, Stanislav V. Zudin, Вы писали:
SVZ>Здравствуйте, indee, Вы писали:
SVZ>>>С ОЛЕ всё понятно, что нужно скормить в JNI? Что должно лежать в char[]?
I>>в char[] должно лежать CString
SVZ>Мдя, исчерпывающе.
SVZ>Если UCS2 (UTF16) устраивает, тогда вот так:
SVZ>
Здравствуйте, Stanislav V. Zudin, Вы писали:
SVZ>Для начала стоит определиться, что именно нужно получить — массив байт, ANSI строку, utf-8 или utf-16?
Здравствуйте, RussianFellow, Вы писали:
RF>А чем, кстати, отличаются UTF-8 и UTF-16 ?
Судя по названию, размером символа.
UTF-8 (от англ. Unicode Transformation Format, 8-bit — «формат преобразования Юникода, 8-бит») — распространённый стандарт кодирования текста, позволяющий более компактно хранить и передавать символы Юникода, используя переменное количество байт (от 1 до 4), и обеспечивающий полную обратную совместимость с 7-битной кодировкой ASCII.
UTF-16 (англ. Unicode Transformation Format) в информатике — один из способов кодирования символов из Юникода в виде последовательности 16-битных слов. Данная кодировка позволяет записывать символы Юникода в диапазонах U+0000..U+D7FF и U+E000..U+10FFFF (общим количеством 1 112 064). При этом каждый символ записывается одним или двумя словами (суррогатная пара).