0

私はstruts2.0アプリケーションで国際化に取り組んでいます。中国語は別として、他の言語でも問題なく動作します。

jspに漢字を入れると、アクションで同じ値が得られません。同じように私を助けてください。

UTF-8pageEncodingも使用しました

<%@page contentType="text/html" pageEncoding="UTF-8"%>

jspに漢字を入力するテキストボックスがあります。

しかし、サーバー側のActionクラスで、テキストボックスの値を取得しようとすると、ジャンク文字が表示されます。

レピュテーションが10個ないため、スクリーンショットを追加できません。

どんな助けでもありがたいです。

4

3 に答える 3

1

pageEncodingパラメータを取得する前に、アクション クラスで、リクエスト ボディのエンコーディングをJSPの と同じエンコーディングに設定します。

request.setCharacterEncoding("UTF-8");

お役に立てれば!

PS上記の解決策は、POSTリクエストにのみ適用されます。

編集

アクション クラスの呼び出しメソッドを取得HttpServletRequestします。

HttpServletRequest request = ServletActionContext.getRequest();

次にrequest、上記のようにプロパティを設定します。

EDIT2

次の行を に追加しますJSP

<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>

filterこれをあなたに追加しますweb.xml

<filter>
    <filter-name>encodingFilter</filter-name>
    <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
    <init-param>
        <param-name>encoding</param-name>
        <param-value>UTF-8</param-value>
    </init-param>
    <init-param>
        <param-name>forceEncoding</param-name>
        <param-value>true</param-value>
    </init-param>
</filter>

<filter-mapping>
      <filter-name>encodingFilter</filter-name>
      <url-pattern>/*</url-pattern>
</filter-mapping>
于 2012-05-24T07:04:16.270 に答える
0

最近、名前のテキストボックスに中国語の文字をコピーして貼り付けるときにjspから問題に直面し、Java DAOレイヤーでそれを取得しようとすると、名前のジャンク値が取得されます。以下のコードで問題を修正し、jsp と同じ中国語の値を取得できます。

String name = new String(entityObj.getName().getBytes("iso-8859-1"), "UTF-8");
于 2016-01-07T07:08:52.370 に答える
0

あなたのページで次のことを試してjspください

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
于 2012-05-24T07:02:23.517 に答える