std::string MyConversion(const std::string& sSrc) { std::string result; size_t nSize = sSrc.size(); size_t i = 0; while (i < nSize) { if ('\\' == sSrc[i] && 'u' == sSrc[i + 1]) { // This assumes that all hex codes consist of four characters char cSave = sSrc[i + 6]; sSrc[i + 6] = 0; result += static_cast(std::strtoul(sSrc.substr(i + 2, 4).c_str(), NULL, 16)); i += 6; sSrc[i] = cSave; } else result += sSrc[i]; ++i; } return result; }