Skip to content

Commit be284a4

Browse files
authored
Update ESP32-CAM_Linebot.ino
1 parent 5c03410 commit be284a4

File tree

1 file changed

+15
-32
lines changed

1 file changed

+15
-32
lines changed

ESP32-CAM_Linebot/ESP32-CAM_Linebot.ino

+15-32
Original file line numberDiff line numberDiff line change
@@ -259,37 +259,20 @@ String SendCapturedImageToLineBot() {
259259
return getBody;
260260
}
261261

262-
//https://github.com/zenmanenergy/ESP8266-Arduino-Examples/
263-
String urlencode(String str)
264-
{
265-
String encodedString="";
266-
char c;
267-
char code0;
268-
char code1;
269-
char code2;
270-
for (int i =0; i < str.length(); i++){
271-
c=str.charAt(i);
272-
if (c == ' '){
273-
encodedString+= '+';
274-
} else if (isalnum(c)){
275-
encodedString+=c;
276-
} else{
277-
code1=(c & 0xf)+'0';
278-
if ((c & 0xf) >9){
279-
code1=(c & 0xf) - 10 + 'A';
280-
}
281-
c=(c>>4)&0xf;
282-
code0=c+'0';
283-
if (c > 9){
284-
code0=c - 10 + 'A';
285-
}
286-
code2='\0';
287-
encodedString+='%';
288-
encodedString+=code0;
289-
encodedString+=code1;
290-
//encodedString+=code2;
291-
}
292-
yield();
262+
//https://www.arduino.cc/reference/en/libraries/urlencode/
263+
String urlencode(String str) {
264+
const char *msg = str.c_str();
265+
const char *hex = "0123456789ABCDEF";
266+
String encodedMsg = "";
267+
while (*msg != '\0') {
268+
if (('a' <= *msg && *msg <= 'z') || ('A' <= *msg && *msg <= 'Z') || ('0' <= *msg && *msg <= '9') || *msg == '-' || *msg == '_' || *msg == '.' || *msg == '~') {
269+
encodedMsg += *msg;
270+
} else {
271+
encodedMsg += '%';
272+
encodedMsg += hex[(unsigned char)*msg >> 4];
273+
encodedMsg += hex[*msg & 0xf];
293274
}
294-
return encodedString;
275+
msg++;
276+
}
277+
return encodedMsg;
295278
}

0 commit comments

Comments
 (0)