FileReference.upload не может правильно отправить составную форму с дополнительными параметрами Unicode - PullRequest
0 голосов
/ 09 февраля 2011

Я нахожусь в проекте Flex 4.0, пытаясь POST к сервлету Java с помощью FileReference.upload (). Я отправляю некоторые дополнительные параметры, такие как название альбома в POST. Это прекрасно работает, когда символы находятся в наборе символов Latin1. Когда я пытаюсь опубликовать японский символ или какой-либо символ Unicode, это не проявляется на стороне Java.

FileReference.upload () игнорирует настройку типа контента и по умолчанию использует тип контента multipart / form-data. Я не знаю, какая кодировка по умолчанию в этом случае. Похоже, что это не UTF-8.

На стороне java httpServletRequest.getCharacterEncoding () показывает ноль. Метод POST, но я не могу подтвердить, как кодируются данные.

Итак, проблема в том, что я застрял при использовании FileReference.upload (), потому что пользователь выбирает файл для загрузки. Мне нужно отправить Unicode, но я не могу заставить Flash правильно их кодировать. Не уверен, поможет ли использование URLLoader или я смогу даже получить данные из FileReference в URLLoader (а затем потерять события прогресса).

Ответы [ 2 ]

1 голос
/ 26 сентября 2012

Нет необходимости иметь дело с server.xml.Все, что вам нужно сделать, это установить в сервлете набор символов запросов UTF-8.

request.setCharacterEncoding("UTF-8");
0 голосов
/ 11 февраля 2011

Таким образом, ответ был связан со стороной Java, а не со стороной Flex. Мне пришлось добавить URIEncoding = "UTF-8" в моем Tomcat server.xml к моему соединителю для портов 8080 и 8443. Это то, что было необходимо для передачи значений Unicode. Затем я должен был убедиться, что мой источник данных (SQL Server) настроен на использование sendStringParametersAsUnicode = true. Теперь я могу опубликовать юникод из приложения Flex в приложение Java и сохранить его в базе данных.

...