UTF-8 неправильная кодировка символов с использованием spring-boot-devtools

Вы можете использовать getComputedStyle() .

var element = document.getElementById('image_1'),
    style = window.getComputedStyle(element),
    top = style.getPropertyValue('top');

jsFiddle .

2
задан CrazyCoder 12 March 2019 в 18:42
поделиться

1 ответ

Следующая конфигурация в pom.xml решит проблему:

  <build>
    <plugins>
      <plugin>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-maven-plugin</artifactId>
        <configuration>
          <executable>true</executable>
          <jvmArguments>-Dfile.encoding=UTF8</jvmArguments>
        </configuration>
      </plugin>
    </plugins>
  </build>

Объяснение:

В консоли Windows для кодирования используется cp1251 с вашей конфигурацией локали, а для консоли IntelliJ IDEA кодировка UTF-8.

При запуске из IntelliJ IDEA опция -Dfile.encoding=UTF8 добавляется в командную строку, когда IDE запускает Maven, так что выходная кодировка Maven JVM совпадает с кодировкой консоли IDE.

Без spring-boot-devtools эта опция передается правильно и учитывается процессом JVM, выполняющим ваш код в консоли IDE. Это тот же экземпляр JVM, на котором работает Maven, все работает нормально.

С spring-boot-devtools зависимостью Maven JVM разветвляет другую JVM для запуска вашего кода, и опция кодировки файла больше не передается ему. В качестве кодировки файла по умолчанию используется системный языковой стандарт для нового процесса JVM, и он становится cp1251, в то время как консоль IntelliJ IDEA все еще настроена на использование кодировки UTF-8. Вывод нарушен, как показано на скриншоте.

Конфигурация

spring-boot-maven-plugin jvmArguments должна использоваться для передачи опции кодирования разветвленной JVM. Это также заставляет консоль Windows использовать ту же кодировку, поэтому приложение продолжит корректно работать в командной строке.

0
ответ дан CrazyCoder 12 March 2019 в 18:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: