Dlaczego niektóre wiadomości zepsują Ci aplikację komunikatora? Sprawdź!

4 minuty czytania
Komentarze

Znakomita większość osób żyjących w rozwiniętych krajach korzysta ze smartfona z systemem Android lub iOS. Zapewne nie raz w przeszłości spotkaliście się z sytuacją, gdy pisząc do danej osoby, aplikacja Waszego komunikatora uległa niewytłumaczalnemu zamknięciu. Mogło to spowodować frustrację, ponieważ program odmawiał często potem posłuszeństwa, a w wyjątkowych przypadkach (jak to miało miejsce np. w przypadku iPhone’ów) wiadomość mogła nawet spowodować pętlę ponownych uruchomień smartfona. Dlaczego jednak telefony i aplikacje reagują w ten sposób na proste ciągi znaków? Dlaczego wiadomości mogą sprawić tyle problemów? To postaram się wyjaśnić Wam w tym artykule. Na sam koniec przygotowałem także niezwykle ciekawy przypadek związany z WhatsAppem, więc dotrwajcie do końca!

Dlaczego wiadomość może zepsuć aplikację?

Jak zapewne wiecie, na świecie znaleźć można tysiące różnych języków. Android przystosowany jest do większości pism na świecie, ponieważ korzysta z zestawu znaków Unicode, który w swojej bazie posiada gigantyczną ilość różnych symboli i liter. Niestety właśnie ta ilość powoduje problemy z aplikacjami – dana kombinacja znaków, która nigdy nie została przetestowana przez deweloperów, ponieważ jest to niemożliwe, może powodować błędy w module odpowiedzialnym za renderowanie tekstu (zamienia on kod na znaki, które potrafimy przeczytać), co wymusza zatrzymanie aplikacji. Na całe szczęście naprawianie błędów tego typu jest stosunkowo proste – twórcy aplikacji po otrzymaniu odpowiedniego zgłoszenia aktualizują kod, co zapobiega występowaniu usterek związanych z danym symbolem w przyszłości. W niektórych aplikacjach, szczególnie tych od Apple’a ;), problem powodować może nawet jeden przypadkowy znak, który jakiś czas temu wywoływał spustoszenie, wyłączając iPhone’y.

Zobacz też: Czy smartfony OnePlusa będą droższe? Wszystko na to wskazuje. 

Nowy błąd w aplikacji WhatsApp jest jednak nieco bardziej interesujący

W zestawie znaków Unicode znaleźć można również niewidoczne dla użytkowników znaki, które gwarantują poprawne wyświetlanie tekstu. Dla przykładu mogą one informować komputer lub smartfon, że w języku arabskim, w którym sformułowana została dana wiadomość, tekst wyświetlany ma być od prawej do lewej strony, a nie na odwrót, jak na przykład w języku polskim. Okazuje się, że to właśnie te znaki mogą sprawiać problem w wiadomości, która sieje spustoszenie.

W komunikatorze WhatsApp powyższa wiadomość wygląda na zupełnie normalną. Gdy przyjrzymy się jednak jej kodowi, to zauważymy coś dziwnego. Zerknijcie sami:

Jak możecie zauważyć, w wiadomości znajduje się wiele (bo około dwóch tysięcy!) podejrzanych znaków. Są to niewidzialne symbole, które zmieniają to, w jaki sposób tekst wyświetlany ma być na urządzeniu – każdy znak zmienia zatem stronę, od której moduł renderowania tekstu ma wyświetlić wiadomość (czyli najpierw od lewej do prawej, potem od prawej do lewej i tak jeszcze około 2000 razy). Samo otrzymanie takiej wiadomości nie stanowi problemu dla urządzenia, ponieważ domyślnie nie wykonuje ono wszystkich tych operacji. Gdy jednak naciśniemy na czarny przycisk (lub dowolną inną część wiadomości) smartfon musi wykonać operacje, by na przykład skopiowanie tekstu było możliwe. Moduł odpowiedzialny za renderowanie tekstu nie jest w stanie wykonać jednak tak olbrzymiej ilości działań, przez co aplikacja WhatsApp samoczynnie się zamyka. Podobnie sytuacja ta powinna wyglądać w większości innych komunikatorów, które wspierają formatowanie tekstu tego typu.

Co robić, jak żyć?

Na całe szczęście opisywany przeze mnie błąd nie jest w stanie wyłączyć Wam telefonu (pozdrawiam właścicieli iPhone’ów ;)), lecz jedynie zamknie aplikację, która po ponownym uruchomieniu będzie w pełni sprawna. Jedyne, co możemy zatem zrobić, to czekać na łatkę, która ograniczy ilość wpisywanych znaków tego typu. Czy jest to jednak warte zachodu? Na to pytanie musicie odpowiedzieć sobie sami – aktualizacja ograniczy przecież również możliwość formatowania wiadomości.

Źródło: Własne / Tom Scott

Motyw