1

スペイン語の文字などの特殊文字をフォーム パラメータとしてページから JSP ページに送信しようとしています。送信したパラメータを取得しようとすると、「?」と表示されます。(疑問符)。java.net スレッドを検索した後、sun-web.xml に次のエントリが必要であることがわかりました。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sun-web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Sun ONE Application Server 8.0 Servlet 2.4//EN" "http://www.sun.com/software/sunone/appserver/dtds/sun-web-app_2_4-0.dtd">
<sun-web-app>
<locale-charset-info default-locale="es">
<locale-charset-map locale="es" charset="UTF-8"/>
<parameter-encoding default-charset="UTF-8"/>
</locale-charset-info>
</sun-web-app>

しかし、このアプローチでは機能しませんでしたが、それでも文字は「?」になります。

4

2 に答える 2

3

これを試してください。また、フォームまたはデータベースに送信する前に、必ず文字を UTF-8 でエンコードしてください。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sun-web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Sun ONE Application Server 8.0 Servlet 2.4//EN" "http://www.sun.com/software/sunone/appserver/dtds/sun-web-app_2_4-0.dtd">

<sun-web-app>
<locale-charset-info default-locale="">
<locale-charset-map locale="" charset=""/>
<parameter-encoding default-charset="UTF-8"/>
</locale-charset-info>
</sun-web-app>

これにより、サーバーは、設定したものに文字エンコーディングを適用します。

于 2010-03-18T20:18:36.927 に答える
1

リクエストパラメータのエンコーディングのみを設定しました。症状に従って、応答エンコーディングも構成する必要があります。JSP ページでは、通常、次の行を先頭に追加するだけで十分です。

<%@page pageEncoding="UTF-8" %>

詳細な背景情報と技術的な解決策については、こちらを参照してください。

データベースを使用している場合、別の原因として考えられるのは、データベースが使用するように構成されていないUTF-8ため、文字が既にガベージとして格納されており、クエリを実行しても常にガベージが返されることです。独立した DB 管理ツールで確認してください。これが実際に当てはまる場合は、データベース テーブルのエンコーディングも設定する必要があります。

于 2010-03-18T20:15:03.367 に答える