Я только что решил эту проблему с копированием фрагментов кода из книги Kindle в редактор текста / исходного кода по вашему выбору.Эта же тема обсуждалась в публикации на stackoverflow.com, озаглавленной «Почему Chrome отображает этот HTML-код как полностью пустую страницу? Из Node.js, после« Книги для начинающих узлов »[закрыто]».Эта конкретная публикация описывает точно ту же проблему, с которой я столкнулся (та же книга Kindle, тот же фрагмент кода, тот же симптом кода!).К сожалению, эта публикация была преждевременно закрыта, прежде чем кто-либо из респондентов смог дать точный ответ, иначе я бы ответил на эту публикацию.
Однако я углубился в эту проблему и обнаружил основную причинупроблема при копировании фрагментов кода из книг Kindle: при копировании текста из приложения Kindle для пробельных символов используется шестнадцатеричный код 0xA0, а не 0x20.Шестнадцатеричный код 0xA0 является расширенным ASCII для неразрывных пробелов.Что ж, это не работает, когда вы ожидаете копировать и вставлять литеральные строки HTML, как это было в вышеупомянутой публикации.
И поэтому это объясняет поведение в вышеупомянутой публикации: оригинальный плакатуказал, что он может обойти проблему, перепечатав весь текст вручную.Это потому, что при ручной повторной печати использовались правильные значения 0x20.
У этого были другие симптомы, которые я сначала не понимал, но теперь объясняю: мой текстовый редактор (Notepad ++) неправильно определял зарезервированные ключевые слова в моемисходный код.Опять же, это потому, что ключевые слова были разделены 0xA0, а не 0x20.Парсер ключевых слов в Notepad ++ должен иметь токен 0x20.
Решение: после вставки текста из Kindle выполните поиск и замену, используя возможности поиска по регулярным выражениям в редакторе исходного кода.Найдите регулярное выражение \ xA0 и замените его на \ x20 (или, в зависимости от вашего редактора, просто введите один символ пробела в поле «Заменить» [так работает Notepad ++]).