FileReference.upload не может правильно отправить составную форму с дополнительными параметрами Unicode

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

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

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

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


person jrsjr    schedule 08.02.2011    source источник


Ответы (2)


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

request.setCharacterEncoding("UTF-8");
person Fatih    schedule 25.09.2012

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

person jrsjr    schedule 10.02.2011