dontsovcmc / waterius

Передача показаний воды по Wi-Fi. Watermeter Wi-Fi transmitter.
https://waterius.ru
GNU Lesser General Public License v3.0
553 stars 108 forks source link

Не подключается к Wi-Fi имеющим пробел #280

Closed dontsovcmc closed 11 months ago

dontsovcmc commented 1 year ago

Версия 0.11.3 и ( 0.11.5) не подключается к Wi-Fi имеющим пробел

Гипотеза: Ошибка вряд ли в WiFiManager, т.к. я дописал POST запрос для получения списка сетей. И в нём прилетает декодированное название сети. И после сохранения сети веб символы сохраняются.

Хотя у пользователя всё работало на старой (покупал летом 2021г.) версии.

wm:[2] AP: -49 WiFi Draft `wm:[3]

`

Проверить в нас дело или в WiFiManager можно откатившись на версию 0.11.0: Предполагаю версия https://github.com/dontsovcmc/waterius/releases/tag/0.11.0-beta, в которой старая версия WiFiManager будет подключаться. Необходимо проверить.

Ещё бывает пробел в SSID закодированный в неразрывный пробел. non breaking space (%C2%A0). Нужно проверить!

Когда вручную указываешь пробел в SSID, то он в параметрах кодируется +.

upd: если вручную написать пробел, то подключается

upd2: может нужно сделать конвертацию в коде WifiManger из 0xC2 0xA0 в 0x20 ?

dontsovcmc commented 11 months ago

В WifiManager зачем то в функции генерации HTML со списком сетей заменяют пробелы. Убрал замену пробелов на неразрывный пробел.

String WiFiManager::htmlEntities(String str, bool whitespace) {
  if(whitespace) str.replace(" "," ");

Версия 0.11.7