28 namespace ace_common {
40 static void intToHex(
char c,
char& code0,
char& code1) {
42 char c0 = (c >> 4) & 0xf;
43 code1 = (c1 > 9) ? c1 - 10 +
'A' : c1 +
'0';
44 code0 = (c0 > 9) ? c0 - 10 +
'A' : c0 +
'0';
47 void formUrlEncode(Print& output,
const char* str) {
54 }
else if (isalnum(c)) {
59 intToHex(c, code0, code1);
70 static char hexToInt(
char c) {
71 if (c >=
'0' && c <=
'9') {
77 if (c >=
'A' && c <=
'F') {
80 if (c >=
'a' && c <=
'f') {
86 void formUrlDecode(Print& output,
const char* str) {
94 }
else if (c ==
'%') {
98 if (code0 ==
'\0')
break;
102 if (code1 ==
'\0')
break;
104 c = (hexToInt(code0) << 4) | hexToInt(code1);