Расширение Chromecast для Chrome внедряет API в виде японских иероглифов

Кажется, я не могу найти эту проблему где-либо еще, и я расстраиваюсь из-за этого. По сути, я успешно внес свое устройство в белый список и начинаю разрабатывать простое приложение «Hello World», используя Chrome в качестве отправителя. Я вошел и добавил localhost в белый список в расширении Chromecast и добавил data-cast-api-enabled="true" в тег html моей страницы отправителя. Даже кажется, что расширение пытается внедрить API.

Но в отладчике Chrome я получаю сообщение об ошибке: Uncaught SyntaxError: Unexpected token ILLEGAL

Я заглянул во вкладку сети и увидел, что api_script.js приходит из расширения, и я даже мог открыть его в отдельной вкладке. Но по какой-то причине эта страница интерпретирует этот файл javascript как... ну, что-то вроде японского. Во вкладке сети ответ на запрос api_script.js такой (и это просто сокращенно):

....慶⁲慣瑳㴠挠獡⁴籼笠㭽挊獡⹴䅎䕍㴠∠慃瑳灁≩਻慣瑳嘮剅䥓乏㴠嬠ⰲ㐠㭝挊獡⹴敒散癩牥㴠映湵瑣潩⡮摩‬慮敭
੻ 桴獩椮⁤‽摩਻†桴獩渮浡⁥‽慮敭਻†桴獩椮味扡牐橯捥整⁤‽桴獩椮䅰摤敲獳㴠渠汵੬㭽挊獡⹴慌湵档敄捳楲瑰潩‽畦据 湯⤨笠 琠楨⹳牵‽桴獩琮硥⁴‽畮汬紊਻慣瑳䰮畡据剨煥敵瑳㴠映湵瑣潩⡮捡楴楶祴祔数‬敲散癩牥
੻†桴獩愮瑣癩瑩呹灹 ‽捡楴楶祴祔数਻†桴獩爮捥楥敶⁲‽敲散癩牥਻†桴獩搮獥牣灩楴湯㴠琠楨⹳慰慲敭整獲㴠渠汵㭬 琠楨⹳楤捳湯敮瑣潐楬 㴠∠潣瑮湩敵ਢ...

Я не совсем уверен, почему это происходит. Кажется, что копирование кода API прямо на мою веб-страницу — единственный способ заставить эту штуку работать вообще. Есть ли у кого-нибудь понимание этого?


person pjjanak    schedule 02.08.2013    source источник


Ответы (1)


Chromecast интерпретирует ваш скрипт как UTF-16 (в качестве доказательства я вставил этот мусор и сохранил его как UTF-16-LE, и получил текстовый файл, начинающийся с var cast = cast || {};).

Убедитесь, что в скрипте нет заголовка спецификации. Если проблема связана с определением кодировки, попробуйте добавить некоторые символы расширенного ASCII в комментарий в начале, чтобы принудительно выбрать кодировку, например. УТФ-8.

person nneonneo    schedule 02.08.2013
comment
Дерп... так получилось. Похоже, файл по какой-то причине сохранялся в UTF-16. Спасибо! - person pjjanak; 03.08.2013