PDA

Показать полную графическую версию : std::string - переделать символы в 16-bit Unicode


crashtuak
21-08-2012, 11:34
Есть строка std::string, с русскими символами. Строка пишется в файл, и файл читается программой на JAVA... Соответственно в JAVA получаем крякозябры, так как в char однобайтный, а в JAVA двубайтный. Как перелопатить символы в двубайтные и запихнуть их в std::string(соответственно в перелопаченой строке в программе на с++ мы получим неразбериху)?

PhilB
21-08-2012, 17:19
Частично понял задачу, но, по-моему, лучше сразу взять строку с типом элемнтов "широкий символ" wchar_t.
То есть вместо string надо использовать basic_string<wchar_t>. Тогда проблем по идеи быть не должно.
Точно сказать будет ли работать не могу, т.к. предпочитаю Qt`шний QString. Там очень шbрокие возможности по работе с кодировками.




© OSzone.net 2001-2012