std::string decodeUTF8EscapeCodes(const std::string& input) { std::stringstream result; for (size_t i = 0; i < input.size(); ++i) { if (input[i] == '' && input[i + 1] == 'u') { // Extracting hexadecimal value std::string hexCode = input.substr(i + 2, 4); unsigned int unicodeValue = std::stoi(hexCode, nullptr, 16); // Handling UTF-8 encoding if (unicodeValue <= 0x7F) { result << static_cast<char>(unicodeValue); } else if (unicodeValue <= 0x7FF) { result << static_cast<char>(0xC0 | ((unicodeValue >> 6) & 0x1F)); result << static_cast<char>(0x80 | (unicodeValue & 0x3F)); } else if (unicodeValue <= 0xFFFF) { result << static_cast<char>(0xE0 | ((unicodeValue >> 12) & 0x0F)); result << static_cast<char>(0x80 | ((unicodeValue >> 6) & 0x3F)); result << static_cast<char>(0x80 | (unicodeValue & 0x3F)); } else if (unicodeValue <= 0x10FFFF) { result << static_cast<char>(0xF0 | ((unicodeValue >> 18) & 0x07)); result << static_cast<char>(0x80 | ((unicodeValue >> 12) & 0x3F)); result << static_cast<char>(0x80 | ((unicodeValue >> 6) & 0x3F)); result << static_cast<char>(0x80 | (unicodeValue & 0x3F)); } // Move ahead by 5 characters as uXXXX is 6 characters in total i += 5; } else { result << input[i]; } } return result.str(); }