HttpSendRequest() 함수를 이용해 웹 페이지를 구성하는 HTML 파일을 요청을 하는데 영문은 괜찮지만 한글은 깨지는 현상이 있습니다. 그래서 UTF-8형식의 문자열을 인코딩하여 전송해야합니다.
그래서 아래 코드와 같이 인코딩하는 코드를 작성했습니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
std::string URLEncoding(char *pIn)
{
if (pIn == NULL) return NULL;
std::string result;
char temp = NULL;
while (*pIn != NULL) {
temp = *pIn;
// ASCII 대소문자와 숫자인 경우만 그대로 저장
if ((temp >= '0' && temp <= '9') &&
(temp >= 'a' && temp <= 'z') &&
(temp >= 'A' && temp <= 'Z') ) {
result += temp;
}
// 공백은 + 로
else if (temp == ' ') {
result += "+";
}
// 아니면 % 와 2자리 16진수 문자값으로 만들어 저장
else {
result += "%";
result += int2hex(temp >> 4);
result += int2hex(temp);
}
pIn++;
}
return result;
}
|
cs |
1
2
3
4
5
6
|
// 10진수 문자값을 16진수 문자값으로 변환
char int2hex(char input)
{
char hex[17] = "0123456789abcdef";
return hex[0x0f & input];
}
|
cs |
'C++ > C++ 코드 기록' 카테고리의 다른 글
디렉터리에 파일 나열 (0) | 2022.11.04 |
---|---|
레지스트리 값 구하는 방법 (0) | 2022.11.04 |
Window OS 버전 번호 (0) | 2022.10.18 |
shlwapi 의 파일 경로 관련 API 모음 (0) | 2022.07.12 |
c/c++ 문자열 변환 : 멀티바이트 <-> 유니코드 <-> UTF-8 (0) | 2021.10.23 |