2009-04-01 3 views
0

mojibakeを実行しないで、HTMLフォームでファイルをアップロードするにはどうすればよいですか?私が設定した ファイルアップロードmojibake

  1. ファイルフィールド
  2. 必要なテキストフィールド
  3. 受け入れるテキストフィールドに日本語の文字:

    は、私は、次の3つのフィールドを持つフォームを持っています私のHTMLフォームの属性はenctype='multipart/form-data'です。しかし、必須のフィールドがないためにフォームの送信が失敗すると、同じページにリダイレクトされますが、2番目のテキストフィールド(Jap。charsを受け入れるもの)はすでにmojibakedされています。

    ただし、enctypeを削除したり、他のものに変更したり、フォームの送信が失敗した場合は、日本語の文字がそのまま表示されます(モンジベイクなし)。問題は、これが成功すると、アップロードされたファイルを読むことができないということです。

    これを修正する方法はありますか?

答えて

1

mojibakeのファイルアップロードフォームの影響を受けていないと思われるappfuse(appfuse.org)をリバースエンジニアリングすることで、わかりました。

サーバー側でcharsetエンコーディングをUTF-8に設定して解決しました(春のorg.springframework.web.filter.CharacterEncodingFilterを使用)。したがって、私はmultipart-/form-dataが本当に文字エンコーディングをスクランブルしていると思います(少なくともJavaでは)。

+0

Servlet/JSPで投稿されたリクエスト本体(wwwエンコードされているかフォームデータであるか)を読むための文字エンコーディングを設定するのは面倒で標準化されていません。残念なことに、ISO-8859-1のデフォルトはますます陳腐化しています。 – bobince

1

文字化け(日本語文字のマングルされたディスプレイは)2つの原因持つことができます

  1. ページのデータを右文字エンコーディングであるが、ブラウザがそれを認識しません。

  2. ページの一部の文字が間違ったエンコーディングを使用しています(サーバーが間違ったエンコーディングで書き込んでいます)。

ページ上の他の文字(フォーム外)が正しく表示されると、サーバー上で壊れた出力が生成されました。

すべてが狂っていて、ブラウザのメニューから別のエンコーディングを手動で設定すると修正できる場合は、ページのエンコーディングが正しく指定されていません。

どのような種類のコンテンツタイプのヘッダーとHTMLメタタグを使用していますか?

+0

htmlには、すでにがあります。 また、firefoxのTamper Dataプラグインを使用すると、送信されたPOSTDATAが既に無効になっていることがわかります(enctype = multipart/form-dataの場合)。だから私はそれが私たちのサーバーに到達する前にすでに壊れていると思います。 –

+0

私のエンコーディングは間違っていますか? –

+0

これは一般公開されているページですか?私たちは見てみることができますか? – Thilo

関連する問題