Я ищу технику, чтобы преобразовать строку (JSON) посылается сервером, содержащим что-то вроде этого: ...."Test \u00e9\u00e9\u00e9".....
в чем-то вроде: «Тест EEE» я нашел решение : boost::replace_all(listFolder, "\\u00e9", "é");
, и я использую эту функцию повышения с другими буквами àùèê и т. Д. ... это больно!преобразования Unicode буквы с акцентами в ASCII/UTF8
Интересно, есть ли функция, которая автоматически сделала такой вид конверсии.
В противном случае, я хочу сказать вам что-то другое, то сервер будет правильно лечить строки я посылаю к нему и содержащий буквы с акцентами, если я использую эту функцию:
std::string fromLocale(std::string localeStr)
{
boost::locale::generator g;
g.locale_cache_enabled(true);
std::locale loc = g(boost::locale::util::get_system_locale());
return boost::locale::conv::to_utf<char>(localeStr,loc);
}
, к сожалению, обратное этого кодового Бесполезный 't работать для обработки строк, отправленных сервером.
std::string toLocale(std::string utf8Str)
{
boost::locale::generator g;
g.locale_cache_enabled(true);
std::locale loc = g(boost::locale::util::get_system_locale());
return boost::locale::conv::from_utf<char>(utf8Str,loc);
}
Это не очень понятно мне, что вы просите. Взгляните на эти фрагменты для декодирования экранов JSON (Unicode): ['append_utf8' в этом примере] (http://stackoverflow.com/questions/27799086/getting-values-from-a-json-file-using- boost-property-tree-with-multiple-element/27799928 # 27799928) – sehe
Читатели отмечают, что @sehe объяснил, что строка, описанная как '' Test \ u00e9 \ u00e9 \ u00e9 ", является строкой' 'Test \\ u00e9 \\ u00e9 \\ u00e9 ", т. е. \, u, 0, 0, e и 9 являются отдельными символами. –
да Cheers и hth. - Альф – Aminos