CSVファイルを残りの簡単な(JAX RS)Webサービスにアップロードするためのマルチパート/フォームデータフォームがあります。このファイルには、é などの iso-8859-1 文字を含めることができます。Firefox からファイルをアップロードすると、これらの文字が文字化けし、最終的に ? のようになります。Internet Explorer でファイルをアップロードすると、すべて正常に動作します。
私はたくさんの読書をして、マルチパート/フォームデータとcharset属性(enctype='multipart/form-data; charset=ISO-8859-1'
)を組み合わせたFirefoxに問題があることを発見しました。
だから私は<meta http-equiv="Content-Type" content="text/csv; charset=iso-8859-1" />
自分のHTMLページで設定しようとしました(text/csvの代わりにtext/htmlまたはmultipart/form-dataを設定しようとしましたが、どちらも違いはないようです.
残りの簡単な API を調べたところ、「マルチパート メッセージのデフォルトのフォールバック コンテンツ タイプを上書きする」ことに関する何かが見つかりました。コンテンツ タイプが見つからない場合のデフォルトのフォールバックは us-ascii です。私が処理しようとしている文字 (é,..) は us-ascii には存在しないため、文字化けしてしまうのは理にかなっています。このデフォルトのフォールバック コンテンツ タイプをオーバーライドしても解決しないようです (参照: http://docs.jboss.org/resteasy/docs/1.2.GA/userguide/html/Multipart.html ) 。
Internet Explorer が http ヘッダーで content-type+charset を正しく送信するので、すべてがうまくいくと私が言ったのは正しいのです。そして、マルチパート/フォームデータと組み合わせてコンテンツタイプ/文字セットを送信しようとしているときに、そのFirefoxが物事を台無しにしますか? stackoverflow を検索しましたが、私の場合、承認されたソリューションはどれも機能していないようです。
誰かが以前にこの特定の問題を抱えていましたか? (Jboss rest easy フレームワークを使用したマルチパート/フォームデータファイルのアップロード)? 他に試してみることができますか?
前もって感謝します!
ヤニック