Чому деякі текстові повідомлення Unicode руйнують ОС iPhone?


31

Нещодавно в Інтернеті з’явився новий «глюк» за останні кілька тижнів, куди якщо користувач iPhone буде надісланий:

  effective. 
      Power
           لُلُصّبُلُلصّبُررً ॣ ॣh ॣ ॣ
 冗

через iMessage він тимчасово вибиває ОС ОС і змушує перезавантажувати телефон, що приймає.

Чому це працює?


3
Власне, я вважаю, що потрібні лише арабські символи (а може бути і ті, що знаходяться після них). Текст "ефективної потужності" - це лише наповнювач і може бути будь-яким, але повинен бути досить довгим, щоб повідомлення сповіщалося (або принаймні намагалися, оскільки саме це спричиняє збій) у іноземних символів.

Відповіді:


36

Якщо вам потрібно виправити це, скористайтеся Siri або Mac за допомогою iMessage, щоб надіслати собі нове повідомлення. Дивіться https://support.apple.com/en-us/HT204897

Це триетапна процедура відновлення, і майбутнє оновлення програмного забезпечення виправить цю помилку.

  1. Попросіть Сірі "читати непрочитані повідомлення".
  2. Використовуйте Siri для відповіді на шкідливе повідомлення. Після відповіді ви зможете відкрити повідомлення ще раз.
  3. Якщо проблема продовжується, торкніться і утримуйте шкідливе повідомлення, торкніться кнопки Додатково та видаліть повідомлення з потоку.

Що стосується того, чому це відбувається, це специфічна помилка в тому, що Центр повідомлень видає вміст цього повідомлення в Unicode. Код виконує "небезпечну" операцію (щось подібне на 5, поділене на 0, а потім не перевіряє на несподівані результати), що спричиняє незроблену помилку.

Тоді оскільки Центр сповіщень не може рендерувати текст тексту, і в кінцевому рахунку виходить з ладу трамплін, який не мав коду, щоб виправити цю помилку витончено. Якщо немає конкретного обробника помилок, у більшості операцій є безпечна помилка "перезавантажити себе", щоб спробувати виправити помилку.

Unicode - це спосіб кодування символів, що використовується для обробки мов, які мають більше символів, ніж англійська. Програмісти можуть мати проблеми з цим, оскільки вони навчилися програмувати за допомогою тексту ASCII, і вони нехтують написанням свого програмного забезпечення за допомогою повної підтримки Unicode.

Одна хороша стаття з цього питання пояснює «якщо ви до сих пір програмування таким чином, ви не набагато краще , ніж лікар , який не вірить в бактеріях».

Ця інша стаття добре пояснює цю конкретну ситуацію.

Apple може або зробити більш жорсткі огляди коду, провести специфічні тестові одиниці або дозволити кінцевим користувачам нечітко перевірити свій код, як у цьому та подібних випадках .


6

Яблуко це має виправити.

Здається, проблема виникає в тому, що телефон намагається відображати повідомлення в сповіщеннях. Символи призводять до того, що ця система зламається, тому вона коротко намагається показати її перед збоєм, а потім повторно налаштує телефон у спробі виправити.

Ось кілька короткотермінових виправлень, які ви можете зробити, поки Apple не виправить проблему.

  • Попросіть особу, яка надіслала вам шкідливе повідомлення, надіслати ще одне повідомлення, яке фактично скасовує початкову нитку

  • Надішліть собі повідомлення через Siri, спільний аркуш або зі свого Mac.

  • Інший читач зазначає, що "надсилання фотографії до контакту через додаток Фотографії дозволяє їм отримати доступ до історії повідомлень та видалити розмову"

джерело: http://www.redmondpie.com/how-to-fix-ios-text-messages-crash-bug/

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.