Skip to content

Commit c2b6dc1

Browse files
authored
Update ESP32-CAM_Base64.ino
1 parent 0db510c commit c2b6dc1

File tree

1 file changed

+15
-32
lines changed

1 file changed

+15
-32
lines changed

ESP32-CAM_Base64/ESP32-CAM_Base64.ino

+15-32
Original file line numberDiff line numberDiff line change
@@ -112,37 +112,20 @@ String Photo2Base64() {
112112
return imageFile;
113113
}
114114

115-
//https://github.com/zenmanenergy/ESP8266-Arduino-Examples/
116-
String urlencode(String str)
117-
{
118-
String encodedString="";
119-
char c;
120-
char code0;
121-
char code1;
122-
char code2;
123-
for (int i =0; i < str.length(); i++){
124-
c=str.charAt(i);
125-
if (c == ' '){
126-
encodedString+= '+';
127-
} else if (isalnum(c)){
128-
encodedString+=c;
129-
} else{
130-
code1=(c & 0xf)+'0';
131-
if ((c & 0xf) >9){
132-
code1=(c & 0xf) - 10 + 'A';
133-
}
134-
c=(c>>4)&0xf;
135-
code0=c+'0';
136-
if (c > 9){
137-
code0=c - 10 + 'A';
138-
}
139-
code2='\0';
140-
encodedString+='%';
141-
encodedString+=code0;
142-
encodedString+=code1;
143-
//encodedString+=code2;
144-
}
145-
yield();
115+
//https://www.arduino.cc/reference/en/libraries/urlencode/
116+
String urlencode(String str) {
117+
const char *msg = str.c_str();
118+
const char *hex = "0123456789ABCDEF";
119+
String encodedMsg = "";
120+
while (*msg != '\0') {
121+
if (('a' <= *msg && *msg <= 'z') || ('A' <= *msg && *msg <= 'Z') || ('0' <= *msg && *msg <= '9') || *msg == '-' || *msg == '_' || *msg == '.' || *msg == '~') {
122+
encodedMsg += *msg;
123+
} else {
124+
encodedMsg += '%';
125+
encodedMsg += hex[(unsigned char)*msg >> 4];
126+
encodedMsg += hex[*msg & 0xf];
146127
}
147-
return encodedString;
128+
msg++;
129+
}
130+
return encodedMsg;
148131
}

0 commit comments

Comments
 (0)