C++ Visual Studio에서 인코딩 된 URL 내 utf8 문자로 인해 발생하는 문제를 해결할 수 없습니다.UTF8 문자로 된 C++ URL 디코드 오류
내가 인코딩 된 문자열이 URL을 가지고 : 위의 인코딩 된 문자열이 당신에게 디코딩 된 올바른 문자열을 줄 것이다 PHP는 기능을하지만, C에서 + + 비주얼 스튜디오 모든 온라인 인코더 및 디코더에
//Encoded
%5C%CE%A4%CE%B5%CF%83%CF%84%5C
//Decoded
\Τεστ\
어떤 내가 디코딩 URL로 만든 시도 코드가 실패했습니다.
나는 내 프로젝트에 위치한 유니 코드 문자를 사용하고 난으로이 인코딩 된 URL 검색 : (내가 그것을받을 방법을 변경하지 못할 PS -이 인코딩 된 URL의 표준입니다 : 문자열)
std:string EncURL = "%5C%CE%A4%CE%B5%CF%83%CF%84%5C";
난 다음 시도를 인터넷에서 많은 디코딩 기능을 사용하여 읽을 수있게 만들고 사용하지만 항상 올바른 문자 대신 나에게 중국어 문자를 반환합니다. 아래는 내가 시도한 많은 기능 중 하나입니다. 인코딩 된 URL에 utf8 문자가없는 경우에만 작동합니다.
string url_decode(string src){
string ret;
char ch;
int i,ii;
for(i=0; i<src.length(); i++){
if(int(src[i]) == 37){
sscanf(src.substr(i+1,2).c_str(), "%x", &ii);
ch = static_cast<char>(ii);
ret += ch;
i = i+2;
}else{
ret += src[i];
}
}
return (ret);
}
사람이 나에게 좋은 방법 또는 내부 UTF8 문자로 제대로 작동 URLdecoding 기능을 만드는 솔루션을 제공 할 것인가? 모든 유형 또는 방법은 std : string EncURL 이후에 사용됩니다. 단지 i가 수신하는 문자열에 대해 C++에서 제대로 urldecoder가 있어야합니다.
---------- 업데이트
내가 변환해야하는 이유는 C 내에서 URL 열거 나 파일 경로 개방 (폴더 또는 파일)에 대한 명백하다 ++하지만 인코딩 된 URL 문자열로오고있다 (데이터베이스, 웹, 채팅, 파일 등) 그래서 다국어 목적을 위해 그 비 라틴어 부분을 수정해야하고 utf8 디코딩 된 문자열을 사용하기 때문에 utf8에서 디코드해야합니다. 그 이유가 필요하기 때문입니다.
이 업데이트는 wcout이나 cout 대신 변환하는 것이 도움이 될 수 있지만 필자가 실제로 필요로하는 대상 푸에스로는 효과적 일 수 있습니다.
사전
을 wstring을 사용하여 올바른 출력을 볼 수 Messabox를 사용할 수 있습니까? Windows는 기본적으로 UTF-16이며 출력하기 전에 변환해야합니다 (또는 디버거에서 보더라도). UTF-8 문자열은 변환하지 않으면 MBCS로 표시됩니다. –
문제가되는 디코딩입니까, 예상치 못한 곳에서'utf8'를 사용하고 있습니까? – Galik
어떻게 실패했는지 알고 계십니까? 무슨 시험 했니? 코드를 게시 할 수 있습니까? – Galik