В Safari на iOS 13.4 и macOS 10.15.4 нельзя искать знак плюса [обновлено: исправлено]

Обновление: эта ошибка была исправлена с помощью серверного обновления.

Вот забавная ошибка. В последних версиях iOS и macOS вы не можете искать знак плюс (символ ‘+’). Попробуйте. Используя поиск Google в Safari, введите поисковый запрос в унифицированную адресную строку, содержащую знак плюса. Когда вы нажмете «Go» для поиска, символ будет удален из результата.

Аналогично, вы можете выполнить поиск в поле поиска страницы Google — и вы попадете на страницу, где знак + будет удален. Похоже, он был заменен ничем, но на самом деле он был заменен пробелом.

Это довольно безобидная ошибка в общем плане, но она тем не менее довольно забавная.

Не помогает и то, что многие продукты в наши дни используют символ + в своих названиях. Когда вы ищете Apple News+, вы увидите результаты для обычного Apple News. То же самое касается Apple TV+ или Disney+.

Если вы пытаетесь исследовать язык программирования C++, вы увидите результаты для обычного C. Кощунство!

Вы можете сами убедиться в этом на любом iPhone, iPad или Mac с последней операционной системой, то есть с Safari версии 13.1. Интересно, что это затрагивает только англоязычные домены Google. Очевидные обходные пути включают временное использование другого веб-браузера или замену символа + написанным словом «plus» в ваших поисковых запросах. Еще один обходной путь — изменить поисковую систему по умолчанию с Google на Bing, но кто захочет это делать. (DuckDuckGo и Yahoo так же не затронуты.)

Если вы задаетесь вопросом, как эта ошибка могла возникнуть, по нашим лучшим предположениям, это ошибка в кодировании URL-адресов. Из-за ограниченных наборов символов, разрешенных в URL-адресах, существует альтернативная форма для представления недопустимых символов. Например, URL-адреса не должны содержать пробелы. Вместо этого вы кодируете символ +, чтобы представить пробел. Символ плюса преобразуется во что-то более экзотическое: ‘%2B%0A’. Но суть в том, что вы можете переводить туда и обратно между этими двумя представлениями.

Теперь это обычно происходит незаметно для пользователя. Это то, о чем заботится приложение. Но то, что, кажется, произошло в последней версии Safari, заключается в том, что эта логика была изменена, и непреднамеренно символ плюса не преобразуется в его URL-кодированную форму «%2B%0A», а сервер вместо этого интерпретирует его как символ пробела. По крайней мере, это наша попытка объяснить эту особенность.

Хотя легко винить во всем Google, мы не можем воспроизвести проблему в более ранних версиях iOS. Это связано с интеграцией Google в Safari.