Как преобразовать строку ASCII в строку UTF8 в C ++? - PullRequest
3 голосов
/ 27 февраля 2010

Как преобразовать std :: string в ASCII в std :: string в формате UTF8 (Unicode) в C ++?

Ответы [ 3 ]

5 голосов
/ 27 февраля 2010
std::string ASCIIToUTF8(std::string str) {
  return str;
}

Каждый символ ASCII имеет одинаковое представление в UTF8, поэтому преобразовывать нечего.Конечно, если во входной строке используется расширенный (8-битный) набор символов ASCII, ответ будет более сложным.

2 голосов
/ 27 февраля 2010

ASCII является семибитной кодировкой и идентично отображает кодировку UTF-8 подмножества символов, которое может быть представлено в ASCII.

Короче, тут нечего делать. Ваша строка ASCII уже является допустимой UTF-8.

0 голосов
/ 27 февраля 2010

Я предполагаю, что под ASCII вы подразумеваете CP1252 или другой 8-битный набор символов (ASCII только 7 бит и он напрямую совместим с UTF-8, преобразование не требуется) Стандарт C ++ не может этого сделать. Вам нужно, например, Glibmm, Qt, iconv или WINAPI, чтобы сделать это.

...