url метода get включает% E2% 81% A9 перед именем файла (источником), почему? - PullRequest
0 голосов
/ 03 июня 2019

Я пытаюсь построить сервер потокового видео, используя Spring Framework.

однако всегда отправляет метод get, подобный этому

"http://localhost:8080/resources/%E2%81%A9mov_bbb.mp4" 

имя файла - mov_bbb.mp4

как это случилось? что такое% E2% 81% A9?

@RequestMapping(value = "/streamView", method = RequestMethod.GET)

@Override
protected void renderMergedOutputModel(Map<String, Object> model, HttpServletRequest request,
        HttpServletResponse response) throws Exception {
    File file = new File("/resources/mov_bbb.mp4");
    RandomAccessFile randomFile = new RandomAccessFile(file, "r");

Ответы [ 2 ]

1 голос
/ 03 июня 2019

Это 3 байта, закодированные в UTF-8 для U + 2069, управление направлением Unicode, POP DIRECTIONAL ISOLATE. Это здесь, вероятно, ошибочный остаток текстовой записи на арабском / иврите. Он не виден, поэтому не был обрезан вручную, и должен был быть обрезан в программном обеспечении.

Также обратите внимание: справа налево можно было бы злоупотреблять, чтобы скрыть расширение имени файла в имени, скажем, .exe, отображаемое как будто заканчивающееся на .jpg. (Здесь не тот случай.)

Решение, похоже, переопределить путь /resources/mov_bbb.mp4. И убедитесь, что файл действительно не содержит невидимых.

1 голос
/ 03 июня 2019

%E2%81%A9 код POP DIRECTIONAL ISOLATE или символы не видны (вы не видите, потому что ваш редактор не поддерживается).

при вызове API вы отправляете что-то вроде �mov_bbb.mp4 для вас невидимые символы.

ссылка на Unicode

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