Вопрос

Как конвертировать STD :: String, закодированную в расширенном ASCII в UTF8, используя Microsoft Visual Studio 2005?

Я использую буфер протокола Google, и он жалуется на NontF8 символов в моей строке, если я даю его без преобразования, что верно ...

Это было полезно?

Решение

Использовать Multibytetowidechar. Чтобы преобразовать вашу строку в UTF-16, затем используйте WideChartoMultibyte. Чтобы преобразовать его в UTF-8.

Другие советы

Давайте предположим, что таинственный assnated Ascii - это просто latin1. Затем используйте маску из Wikipedia:

110y yyxx 10xx xxxx

Так как у вас есть только 00..ff, тогда у вас есть: 1100 00xx 10xx xxxx.

Алгоритм преобразования будет следовать, если Char Code является <127, а затем просто сбросить его как есть, если он> 127, то вы делаете 0xC0 | ((x & 0xC0) >> 24) идет на первый байт, второй ((x & 0x3F) | 0x80)

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top