0

我在尝试使用 FileReference.upload() 发布到 Java servlet 的 Flex 4.0 项目中。我在 POST 中发送了一些附加参数,例如专辑名称。当字符在 Latin1 字符集中时,这可以正常工作。当我尝试发布一个日文字符或一些 Unicode 字符时,它不会在 Java 端通过。

FileReference.upload() 忽略 content-type 设置并默认使用 multipart/form-data 的 Content-Type。在这种情况下,我不知道默认编码是什么。看来它不是UTF-8。

在 java 端,httpServletRequest.getCharacterEncoding() 显示为 null。该方法是 POST 但我无法确认数据是如何编码的。

所以问题是我似乎无法使用 FileReference.upload() 因为用户正在选择要上传的文件。我需要发送 Unicode,但我无法让 Flash 对其进行正确编码。不确定使用 URLLoader 是否会有所帮助,或者我什至可以将数据从 FileReference 中获取到 URLLoader 中(然后丢失进度事件)。

4

2 回答 2

1

无需处理 server.xml。您需要做的就是在 servlet 中将请求字符集设置为 UTF-8。

request.setCharacterEncoding("UTF-8");
于 2012-09-25T21:16:05.940 回答
0

所以答案与 Java 端有关,而不是 Flex 端。我必须在我的 Tomcat server.xml 中将 URIEncoding="UTF-8" 添加到端口 8080 和 8443 的连接器中。这就是传递 unicode 值所需要的。然后我必须确保我的数据源 (SQL Server) 设置为使用 sendStringParametersAsUnicode=true。现在我可以将 unicode 从 Flex 应用程序发布到 Java 应用程序并将其保存在数据库中。

于 2011-02-10T21:00:10.407 回答