Skip to content

Commit 96004c1

Browse files
authored
Update ESP32-CAM_PIR_Gmail.ino
1 parent c55cd17 commit 96004c1

File tree

1 file changed

+15
-32
lines changed

1 file changed

+15
-32
lines changed

ESP32-CAM_PIR_Gmail/ESP32-CAM_PIR_Gmail.ino

+15-32
Original file line numberDiff line numberDiff line change
@@ -275,37 +275,20 @@ String SendCapturedImage2Gmail(String myRecipient, String mySubject) {
275275
return getBody;
276276
}
277277

278-
//https://github.com/zenmanenergy/ESP8266-Arduino-Examples/
279-
String urlencode(String str)
280-
{
281-
String encodedString="";
282-
char c;
283-
char code0;
284-
char code1;
285-
char code2;
286-
for (int i =0; i < str.length(); i++){
287-
c=str.charAt(i);
288-
if (c == ' '){
289-
encodedString+= '+';
290-
} else if (isalnum(c)){
291-
encodedString+=c;
292-
} else{
293-
code1=(c & 0xf)+'0';
294-
if ((c & 0xf) >9){
295-
code1=(c & 0xf) - 10 + 'A';
296-
}
297-
c=(c>>4)&0xf;
298-
code0=c+'0';
299-
if (c > 9){
300-
code0=c - 10 + 'A';
301-
}
302-
code2='\0';
303-
encodedString+='%';
304-
encodedString+=code0;
305-
encodedString+=code1;
306-
//encodedString+=code2;
307-
}
308-
yield();
278+
//https://www.arduino.cc/reference/en/libraries/urlencode/
279+
String urlencode(String str) {
280+
const char *msg = str.c_str();
281+
const char *hex = "0123456789ABCDEF";
282+
String encodedMsg = "";
283+
while (*msg != '\0') {
284+
if (('a' <= *msg && *msg <= 'z') || ('A' <= *msg && *msg <= 'Z') || ('0' <= *msg && *msg <= '9') || *msg == '-' || *msg == '_' || *msg == '.' || *msg == '~') {
285+
encodedMsg += *msg;
286+
} else {
287+
encodedMsg += '%';
288+
encodedMsg += hex[(unsigned char)*msg >> 4];
289+
encodedMsg += hex[*msg & 0xf];
309290
}
310-
return encodedString;
291+
msg++;
292+
}
293+
return encodedMsg;
311294
}

0 commit comments

Comments
 (0)