Skip to content

Commit fbfcbad

Browse files
authored
Update ESP32_AirQuality_3Leds.ino
1 parent 40c8b88 commit fbfcbad

File tree

1 file changed

+14
-30
lines changed

1 file changed

+14
-30
lines changed

ESP32_AirQuality_3Leds.ino

+14-30
Original file line numberDiff line numberDiff line change
@@ -671,38 +671,22 @@ bool flashWrite(uint32_t offset, uint32_t *data, size_t size);
671671
bool flashRead(uint32_t offset, uint32_t *data, size_t size);
672672
*/
673673

674-
//https://github.com/zenmanenergy/ESP8266-Arduino-Examples/
674+
//https://www.arduino.cc/reference/en/libraries/urlencode/
675675
String urlencode(String str) {
676-
String encodedString="";
677-
char c;
678-
char code0;
679-
char code1;
680-
char code2;
681-
for (int i =0; i < str.length(); i++){
682-
c=str.charAt(i);
683-
if (c == ' '){
684-
encodedString+= '+';
685-
} else if (isalnum(c)){
686-
encodedString+=c;
687-
} else{
688-
code1=(c & 0xf)+'0';
689-
if ((c & 0xf) >9){
690-
code1=(c & 0xf) - 10 + 'A';
691-
}
692-
c=(c>>4)&0xf;
693-
code0=c+'0';
694-
if (c > 9){
695-
code0=c - 10 + 'A';
696-
}
697-
code2='\0';
698-
encodedString+='%';
699-
encodedString+=code0;
700-
encodedString+=code1;
701-
//encodedString+=code2;
702-
}
703-
yield();
676+
const char *msg = str.c_str();
677+
const char *hex = "0123456789ABCDEF";
678+
String encodedMsg = "";
679+
while (*msg != '\0') {
680+
if (('a' <= *msg && *msg <= 'z') || ('A' <= *msg && *msg <= 'Z') || ('0' <= *msg && *msg <= '9') || *msg == '-' || *msg == '_' || *msg == '.' || *msg == '~') {
681+
encodedMsg += *msg;
682+
} else {
683+
encodedMsg += '%';
684+
encodedMsg += hex[(unsigned char)*msg >> 4];
685+
encodedMsg += hex[*msg & 0xf];
704686
}
705-
return encodedString;
687+
msg++;
688+
}
689+
return encodedMsg;
706690
}
707691

708692
String urldecode(String str) {

0 commit comments

Comments
 (0)