UTF-8 URL-проблема - PullRequest
       4

UTF-8 URL-проблема

2 голосов
/ 30 июня 2011

У меня запущен сервер tomcat (7), через который я пытаюсь получить доступ к некоторым публичным файлам по http.В некоторых файлах файловой системы есть специальные символы.Найдены те, у кого нет этих специальных символов.Другие дают 404. Например:

http://localhost:9090/processed/transcoded/Csángó_TÖMEGKERESZTELŐVEL_EGYBEKÖTÖTT_búcsú_Istensegítsfalvá20111053491309424029417_extracted.mp3"

Из того, что я обнаружил в URL, utf-8 не должно быть проблемой.Я попробовал функцию escape-URL для имени файла, что привело к:

http://localhost:9090/processed/transcoded/Cs%c3%a1ng%c3%b3_T%c3%96MEGKERESZTEL%c5%90VEL_EGYBEK%c3%96T%c3%96TT_b%c3%bacs%c3%ba_Istenseg%c3%adtsfalv%c3%a120111053491309424029417_extracted%2emp3

... но это тоже ничего не решало.Что попробовать дальше?Я понятия не имею, в чем проблема.Возможно, это связано с настройками Tomcat?

1 Ответ

6 голосов
/ 30 июня 2011

У вас есть URIEncoding="UTF-8" в вашем <Connector? Если да, вот что я бы сделал:

  1. создать тестовое веб-приложение с фильтром, перехватывающим все вызовы на /processed/transcoded/*
  2. установите точку останова на этом фильтре и посмотрите, что вы получите. Имеет ли смысл имя файла при декодировании?
  3. попробуйте открыть новый java.io.File, используя этот путь (очевидно, предшествуя локальному расположению, например, /home/someuser/files/... и предполагая, что файл там).

Я не думаю, что Tomcat делает гораздо больше, чем указано выше.

Другой альтернативой может быть отладка самого Tomcat.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...