Для поддержки UTF-8 существует класс Glib :: ustring . Он моделируется после std::string
, но осведомлен о utf-8, например когда вы сканируете строку с помощью итератора. Он также имеет некоторые ограничения, например, итератор всегда const
, так как замена символа может изменить длину строки и, таким образом, может сделать недействительными другие итераторы.
ustring
не преобразует автоматически другие кодировки в utf-8, Glib
библиотека имеет для этого различные функции преобразования . Вы можете проверить, является ли строка допустимым utf-8, хотя.
А также, ustring
и std::string
являются взаимозаменяемыми, то есть ustring
имеет оператор приведения к std :: string, так что вы можете передать ustring
в качестве параметра, где ожидается std::string
, и наоборот наоборот, поскольку ustring
может быть построен из std::string
.