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 @@ -259,37 +259,20 @@ String SendCapturedImageToLineBot() {
259
259
return getBody;
260
260
}
261
261
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 ];
293
274
}
294
- return encodedString;
275
+ msg++;
276
+ }
277
+ return encodedMsg;
295
278
}
You can’t perform that action at this time.
0 commit comments