0

FileReference.upload() を使用して Java サーブレットに POST しようとしている 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 を扱う必要はありません。サーブレットでリクエストの文字セットを UTF-8 に設定するだけです。

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

そのため、答えは Flex 側ではなく Java 側に関係していました。Tomcat server.xml の URIEncoding="UTF-8" をポート 8080 および 8443 のコネクタに追加する必要がありました。これが、Unicode 値を渡すために必要でした。次に、データソース (SQL Server) が sendStringParametersAsUnicode=true を使用するように設定されていることを確認する必要がありました。これで、Unicode を Flex アプリから Java アプリにポストして、データベースに保存できるようになりました。

于 2011-02-10T21:00:10.407 に答える