1. 형식
형식1) result= setqueryencode()
형식2) result= setqueryencode(mode)
형식3) result= setqueryencode(mode, hangle_flag)
2. 기능: 이 함수는 queryencode() 함수의 기능을 재설정하는 함수이며 형식1)은
현재 설정값을 얻기만하고 형식2)와 형식3)은 설정을 변경할 수 있다.
3. 설명
(1) 인자 mode나 hangle_flag이 문자열이고 수치로 변환될 수 있을 때는 수치로
변환되며 변환될 수 없을 때는 에러 처리된다.
(2) 인자 mode의 값이 0 이면 queryencode() 함수의 인자는 1개만 사용할 수 있고
인자의 값을 쿼리 스트링으로 부호화하고 폼 매크로는 확장되지 않는다.
(3) 인자 mode의 값이 1 또는 기타이면 queryencode() 함수의 인자의 개수는
제한이 없으며 인자의 값은 "변수1=값1&변수2=값2&...&변수N=값N"의 형식을
사용할 수 있으며, 인자의 값은 부호화하지 않고 인자에 사용된 폼 매크로
변수의 값만 부호화하여 확장한다.
(4) 인자 hangle_flag의 값이 0 이면 한글은 부호화하지 않으며 그 값이 1 또는
기타이면 한글도 부호화한다.
(5) setqueryencode() 함수를 호출하지 않고 queryencode()함수를 사용할 때는
mode와 hangle_flag의 초기값은 모두 0 이다. 즉, setqueryencode(0,0)이
초기값으로 설정되어 있다.
(6) 형식1)은 현재 설정된 mode와 hangle_flag의 값을 얻는다.( 설명 (7) 참조 )
(7) result는 설정된 값이 수치로 돌려지며 그 의미는 아래와 같다.
result의 값이 0 일때 - mode= 0 , hangul_flag= 0
result의 값이 1 일때 - mode= 0 , hangul_flag= 1 또는 기타
result의 값이 2 일때 - mode= 1 또는 기타 , hangul_flag= 0
result의 값이 3 일때 - mode= 1 또는 기타 , hangul_flag= 1 또는 기타
4. 사용예#1
q1= "test1=a&b#c!";
q2= "test2=가&test3=나 다";
setqueryencode(0, 0); // 폼 매크로 모드가 아니고 한글은 부호화하지 않음
result1= queryencode(q1);
result2= queryencode(q2);
printf(" [%s] [%s]\n", result1, result2);
setqueryencode(0, 1); // 폼 매크로 모드가 아니고 한글을 부호화함
result1= queryencode(q1);
result2= queryencode(q2);
printf(" [%s] [%s]\n", result1, result2);
------------------------------ [ 출력결과 ] ------------------------------
[test1%3Da%26b%23c%21] [test2%3D가%26test3%3D나+다]
[test1%3Da%26b%23c%21] [test2%3D%B0%A1%26test3%3D%B3%AA+%B4%D9]
5. 사용예#2
q1= "test1=a&b#c!";
q2= "test2=가&test3=나 다";
setqueryencode(1, 0); // 폼 매크로 모드이며 한글은 부호화하지 않음
result1= queryencode("a={$q1}&b={$q2}");
printf(" [%s]\n", result1);
qstr= "a={$q1}&b={$q2}";
result1= queryencode(qstr);
printf(" [%s]\n", result1);
setqueryencode(1, 1); // 폼 매크로 모드이며 한글을 부호화함
result1= queryencode("a={$q1}&", "b=", "{$q2}");
printf(" [%s]\n", result1);
------------------------------ [ 출력결과 ] ------------------------------
[a=test1%3Da%26b%23c%21&b=test2%3D가%26test3%3D나+다]
[a=test1%3Da%26b%23c%21&b=test2%3D가%26test3%3D나+다]
[a=test1%3Da%26b%23c%21&b=test2%3D%B0%A1%26test3%3D%B3%AA+%B4%D9]
|