Как мне заставить Vaadin загрузить JS-файл в формате UTF-8 с использованием аннотации JavaScript?

#javascript #utf-8 #d3.js #vaadin7

#javascript #utf-8 #d3.js #vaadin7

Вопрос:

Я пытаюсь использовать Vaadin с d3.js. Если я использую d3.js с помощью некоторого пользовательского JavaScript в рукописном HTML-файле я должен включить d3.js в utf-8 (потому что автор решил, что было бы неплохо использовать всевозможные необычные символы по всему коду для представления таких вещей, как pi):

 <script src="d3.js" charset="utf-8"></script>
  

Достаточно просто. Но если я использую его с этим пользовательским виджетом Vaadin, мне придется использовать нотацию JavaScript Vaadin:

 @JavaScript({"myscript.js","d3.js",})
  

Что, опять же, достаточно просто для myscript.js , но он не интерпретирует d3.js в формате utf-8, и поэтому я в конечном итоге получаю illegal character ошибки при загрузке страницы со всем этим материалом в моем браузере.

Есть ли способ заставить аннотацию JavaScript Vaadin расшифровать d3.js как это требуется?

Ответ №1:

Вы не можете установить кодировку в аннотации, но я думаю, что UTF-8 должен быть по умолчанию. JavaScript следует кодировке страницы. Убедитесь, что страница вашего приложения имеет что-то вроде:

 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
  

В качестве альтернативы это может быть проблемой сервера. Некоторые серверы неправильно обслуживают текстовые файлы (включая JS), используя кодировку, в которой они находятся в файловой системе (или файл вообще не имеет UTF-8). Попробуйте загрузить d3.js Отдельно файл JavaScript и HTTP-заголовки для UTF-8 и убедиться, что содержимое выглядит нормально.