1

JSP スクリプトを使用していくつかの Web サイトをプログラミングしていますが、urlencoded Web 式パラメーターで奇妙な問題が発生しました。サイト自体は iso-8859-1 でエンコードされています。

というフィールドを持つ単純な Web フォームがありますdescription

ドイツ語のウムラウトや「ü」や「ß」などの特殊文字を入力すると、これらは自動的に urlencode されます。しかし、このパラメーターを読みたい場合は、常にnull.

String description = request.getParameter("description");

などの中国語の単語を入力すると專業人士、それらも urlencode されます。ただし、取得せずに読み取ることができますnull

メソッドとして「post」を使用しても「get」を使用しても、この動作は変わりません。以下のテキストを使用して Web フォームを「ポン引き」しようとしましたが、それも役に立ちませんでした。

accept-charset="ISO-8859-1" enctype="application/x-www-form-urlencoded"

私の質問は、ウルレンコード化されたドイツ語のウムラウトを取得できないのに、中国語の単語を取得できないのはなぜですか?

4

2 に答える 2

1

ページまたはサーブレットのエンコーディングが UTF-8 であると思われます。Latin-1 でエンコードされたウムラウトは無効な UTF-8 シーケンスであるため、NULL が返されます。

中国語を入力すると、ブラウザーはこれを Latin-1 でエンコードできないことを認識しているため、自動的に UTF-8 に変更されます。だから中国語が効く。

HTTP トレースを投稿していただければ、これを確認できます。

于 2009-09-03T10:17:03.407 に答える
1

ISO-8859-1 の中国語は機能しませんが、ドイツ語は機能します。とにかく中国語がエンコードされている場合、フォームは UTF-8 でエンコードされている可能性がありますか? どのブラウザを使用していますか? JSP の encopding とは何ですか? Latin 1 ではなく、常に UFT-8 を使用する必要があります。最近では、すべてのブラウザーとサーバーがすべての OS で UTF-8 をサポートする必要があります。

私の経験では、GET は多くの場合エンコーディングで動作しませんが、POST では動作するはずです。フォーム パラメータの accept-charset と enctype は正しいです。どのサーバーを使用していますか?

JSP コンテンツ タイプは通常、次のように設定されます。

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" 
                         pageEncoding="ISO-8859-1" %>
于 2009-09-03T10:22:44.267 に答える