저는 C를 배우고 있으며, libcURL을 사용하여 웹 사이트에 로그인하기위한 POST 요청을 보내고 있습니다.
문제가 발생했습니다. 암호에 ü
문자가 포함되어 있습니다.
브라우저에서 POST 요청을 읽으면 %FC
으로 인코딩 된 것을 볼 수 있습니다.
그러나 curl_easy_escape()
을 사용하여 인코딩하면 %C3%BC
으로 인코딩됩니다.다른 문자셋에서 이상한 문자를 URL로 변환합니다.
나는 검색을 해본 결과 다른 인코딩임을 알게되었습니다. 나는이 메타가 페이지에 있기 때문에 ISO라고 생각한다. <meta content="text/html; charset=ISO-8859-1" http-equiv="content-type">
그러나 어떻게 든 변환하는 방법을 알 수 없다.
이제 어떻게하면 ü
을 %FC
으로 urlencoding 할 수 있습니까?
@HansPassant 왜 로케일을 변경해야합니까? 다국어 프로그램의 출력에만 영향을 미치지 않습니까? –
'libcurl' 태그에 POST에 사용할 문자열을 준비하는 올바른/관용적 인 방법을 묻는 별도의 질문을 게시하는 것이 좋습니다. 이것은 모두가 필요로하는 것이기 때문에 분명히 표준 응답이 있습니다. 최악의 상황은 표준 솔루션이'curl_easy_escape'이고 문자열을이 함수에 전달하기 전에 charset 변환을 직접 수행해야한다는 것입니다. –
@R .. 일반적으로 [라이브러리 자체의 예제] (http://curl.haxx.se/libcurl/c/http-post.html)가있는 경우, 필자는 이것이 올바른/관용적 인 방법이어야한다고 생각합니다. 처리해. –