Я загружаю файл на сервер. Форма HTML для загрузки файла имеет 2 поля:
- Имя файла - текстовое поле HTML, в котором пользователь может указать имя на любом языке.
- Загрузка файла - HTMl 'файл', где пользователь может указать файл с диска для загрузки.
Когда форма отправляется, содержимое файла принимается должным образом. Однако, когда имя файла (пункт 1 выше) считывается, оно искажается. Символы ASCII отображаются правильно. Когда имя дается на каком-то другом языке (немецкий, французский и т.д.), Возникают проблемы.
В методе сервлета кодировка символов запроса установлена в UTF-8. Я даже попытался сделать фильтр, как было сказано - Как я могу сделать этот код для отправки текстового поля формы UTF-8 с помощью Работа jQuery/Ajax? - но, похоже, это не работает. Кажется, что только имя файла искажено.
Таблица MySQL, в которой находится имя файла, поддерживает UTF-8. Я дал случайные неанглийские символы, и они были сохранены/отображены правильно.
Используя Fiddler, я отслеживал запрос и все данные POST передавались правильно. Я пытаюсь определить, как/где данные могут искажаться. Любая помощь будет принята с благодарностью.