C++에서 URI를 디코딩해야합니다. 그것에 대해 몇 가지 질문을했지만, 모두 UTF-8 인코딩 및 액센트를 처리하지 못했습니다 (ASCII 문자를 정확하게 처리하는 데 관심이 있습니다).C++에서 UTF-8 문자로 URI를 디코딩하는 방법
그런 다음 libcurl ...과 같이 널리 사용되는 라이브러리를 사용했지만 UTF-8 인코딩도 처리하지 못했습니다. 저는 여기에 문제는이 aáeéiíoóuú
을해야 할 때 a%C3%A1e%C3%A9i%C3%ADo%C3%B3u%C3%BA
가 aáeéiÃoóuú
로 디코딩됩니다 있다는 것입니다
string UriHelper::Decode(const string &encoded)
{
CURL *curl = curl_easy_init();
int outlength;
char *cres = curl_easy_unescape(curl, encoded.c_str(), encoded.length(), &outlength);
string res(cres, cres + outlength);
curl_free(cres);
curl_easy_cleanup(curl);
return res;
}
을하고있어거야. a%E1e%E9i%EDo%F3u%FA
을 사용하면 잘 작동합니다.
인코딩 된 URI를 다르게 처리하고 처리 할 수있는 라이브러리가 있습니까?
감사합니다.
빠른 참고 : 코드는 예외 안전하지 않으며 MT-안전 –