File tree 1 file changed +15
-32
lines changed
1 file changed +15
-32
lines changed Original file line number Diff line number Diff line change @@ -112,37 +112,20 @@ String Photo2Base64() {
112
112
return imageFile;
113
113
}
114
114
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 ];
146
127
}
147
- return encodedString;
128
+ msg++;
129
+ }
130
+ return encodedMsg;
148
131
}
You can’t perform that action at this time.
0 commit comments