Имеется Web-приложение для регистрации документов (т.е. регистрационная карточка документа (описание) + сам документ (закачивается файл на сервер) ). Скачиваются файлы с сервера путем DownloadServlet v. 2.2. Во всех сервлетах, отвечающих за добавления регистрационной карточки выставлено request.setCharacterEncoding("UTF-8");.
При добавлении файла на сервер, имя файла составляется следующим образом:
Префикс (русский алфавит) + имя самого файла.
Ну и соответственно это имя кладется в БД. Однако в БД все русские символы "кракозябры", хотя при создании БД явно указал кодировку utf-8. Но не смотря на это, при чтении из БД, они декодируются обратно в понятные глазу человека русские буквы.
И такие же проблемы с именем файла. Т.е. при попытке скачать файл - все русские буквы - непонятные "кракозябры". Только они уже не декодируются в русский алфавит, и поэтому сервлет не находит данный файл, хотя он лежит на сервере с нормальным именем.
Вопрос в следующем:
Каким образом можно сделать так, чтобы в MySQL русские буквы отображались нормально?
В чем может быть проблема с кодировкой имени файла? Я покопался в исходнике DownloadServlet, но ничего сверхъестественного не нашел.
UPDATE:
UPDATE 2:
По умолчанию cmd.exe использует кодировку cp866. Текущую кодировку можно посмотреть командой chcp. Иногда возникает необходимость использовать в терминале юникод. Для этого необходимо использовать шрифт "Lucida Console" и переключить кодировку командой
>chcp <codepage>
Где параметр для UTF-8 равен 65001
источник
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости