26 #include "url_encoding.h"
32 namespace url_encoding {
38 static void intToHex(
char c,
char& code0,
char& code1) {
40 char c0 = (c >> 4) & 0xf;
41 code1 = (c1 > 9) ? c1 - 10 +
'A' : c1 +
'0';
42 code0 = (c0 > 9) ? c0 - 10 +
'A' : c0 +
'0';
45 void formUrlEncode(Print& output,
const char* str) {
52 }
else if (isalnum(c)) {
57 intToHex(c, code0, code1);
68 static char hexToInt(
char c) {
69 if (c >=
'0' && c <=
'9') {
72 if (c >=
'a' && c <=
'f') {
75 if (c >=
'A' && c <=
'F') {
81 void formUrlDecode(Print& output,
const char* str) {
88 }
else if (c ==
'%') {
92 if (code0 ==
'\0')
break;
96 if (code1 ==
'\0')
break;
98 c = (hexToInt(code0) << 4) | hexToInt(code1);