std::string decodeUnicodeEscapeSequences(const std::string& input) { std::regex pattern("\\\\u([0-9A-Fa-f]{4})"); std::string output; std::smatch match; auto pos = input.cbegin(); while (std::regex_search(pos, input.cend(), match, pattern)) { output += match.prefix().str(); auto codepoint = std::stoi(match[1], nullptr, 16); output += static_cast((codepoint >> 12) | 0xE0); output += static_cast(((codepoint >> 6) & 0x3F) | 0x80); output += static_cast((codepoint & 0x3F) | 0x80); pos = match.suffix().first; } output += std::string(pos, input.cend()); return output; }