Загрузка файла моджибаке - PullRequest
0 голосов
/ 01 апреля 2009

Как сделать загрузку файла в HTML-форме, не сталкиваясь с mojibake ?

У меня есть форма с тремя полями:

  1. поле файла
  2. обязательное текстовое поле
  3. текстовое поле, которое принимает японские символы

Я настроил свою HTML-форму с атрибутом enctype='multipart/form-data'. Но когда отправка формы не удалась из-за отсутствия обязательного поля, я перенаправляюсь на ту же страницу, но мое 2-е текстовое поле (то, которое принимает японские символы) уже mojibaked.

Тем не менее, если я удаляю enctype или изменяю его на что-либо еще, и когда отправка формы завершается неудачно, я вижу японские символы как они есть (без моджибаке). Проблема в том, что в случае успеха я не могу прочитать загруженные файлы.

Есть идеи как это исправить ??

Ответы [ 2 ]

1 голос
/ 01 апреля 2009

Я понял это (путем обратного инжиниринга appfuse (appfuse.org), который, похоже, не подвержен влиянию mojibake с его формой загрузки файлов).

Это было решено путем установки кодировки кодировки в UTF-8 на стороне сервера (с помощью Spring org.springframework.web.filter.CharacterEncodingFilter). Таким образом, я предполагаю, что multipart- / form-data действительно портят кодировку символов (или, по крайней мере, для Java).

1 голос
/ 01 апреля 2009

Моджибаке (искаженное отображение японских символов) может иметь две причины:

  1. Данные на странице находятся в правильной кодировке символов, но браузер не распознает ее.

  2. Некоторые символы на странице используют неправильную кодировку (сервер записал их в неправильной кодировке).

Если другие символы на странице (за пределами вашей формы) отображаются правильно, значит, вы вывели неверный вывод на ваш сервер.

Если все засорено, и вы можете исправить это, вручную установив другую кодировку из меню браузера, тогда кодировка страницы указана неправильно.

Какие типы заголовков содержимого и метатеги HTML вы используете?

...