Специальные символы в именах файлов при загрузке файлов в Play Framework - PullRequest
0 голосов
/ 13 марта 2019

Приложение My Play Framework 2.7, работающее за прокси-сервером Apache.Приложение предоставляет функциональные возможности для загрузки файлов и сохраняет исходное имя файла в базе данных MySQL (при переименовании исходного файла в случайный UUID).

Контент подается в браузер как UTF-8 с <meta charset="utf-8"> тег заголовка.База данных MySQL - InnoDB с кодировкой utf-8.

При получении файла в бэкэнде я использую такой код для получения имени файла (в соответствии с рекомендациями Play docs):

request.body.file("file").map { file =>
  val fileName = Paths.get(file.filename).getFileName.toString
  ...
}

Если я загружаю файл с именем «Skärmavbild.png», «ä» правильно кодируется и сохраняется в базе данных, если файл загружен через Safari.Однако, если файл загружен через Chrome или Firefox - имя файла становится «Ska? Rmavbild.png».Chrome и Firefox протестированы как на Mac, так и на Windows.

Эта ошибка не возникает в режиме разработки, когда я запускаю приложение без прокси.

Пожалуйста, посоветуйте, как решить проблему с кодировкой.

...