1

Struts2 (および Struts2-jquery プラグイン) に基づいて既存のコードを拡張していますが、これが問題の原因ではないと思います)。

Internet Explorer 9 で、FireFox には見られない奇妙な動作を見つけました (以前のバージョンの IE にも同じ問題が存在するかどうかはわかりません)。

いくつかの入力フィールドと、サーバーにファイルをアップロードするために使用されるアップロード機能を含むページがあります。ユーザーがファイルをアップロードすると、これはフォーム送信によってサーバーに送信され、アクションは同じページに戻ります (ページをリロードします)。アクセント付きの文字を使用して入力ボックスに入力すると、フォームの送信後にページをリロードすると、アクセント付きの文字の代わりに「四角」が表示されます (それは です�)。これは IE でのみ発生し、FireFox では発生しません (文字は送信前と同じままです)。

web.xmlおよびstruts.xmlファイルには、JSP のエンコード構成がありません。

<%@ taglib prefix="s" uri="/struts-tags"%>
<%@ taglib prefix="sj" uri="/struts-jquery-tags"%>
<s:form id="actionForm" name="actionForm"
    theme="simple" cssClass="yform"
    action="changeAction" acceptcharset="UTF-8">
    <table>
        <tr>
            <td>field1</td>
            <td>
                <s:textfield id="field1" name="field1" maxlength="2048" value="%{field1}" disabled="false" size="98" required="true" />
            </td>
        </tr>
        <tr>
            <td><s:file name="docFacFileUploaded" size="50" /></td>
            <td>
                <sj:submit targets="main_section" id="uploadFileButton" value="File upload" button="true" indicator="indLoad" />
                <img id="indLoad" src="indicator.gif" alt="Loading..." style="display:none" />
            </td>
        <tr>
        </tr>
            <td>field2</td>
            <td>
                <s:textfield id="field2" name="field2" maxlength="2048" value="%{field2}" disabled="false" size="98" required="true" />
            </td>
        </tr>
        <tr>
            <td>
                <sj:submit targets="main_section" id="salvaButton" value="Salva" button="true" indicator="ind" />
                <img id="ind" src="indicator.gif" alt="Loading..." style="display:none" />
            </td>
        </tr>
    </table>
</s:form>
4

3 に答える 3

0

URL https://forums.oracle.com/forums/thread.jspa?messageID=3151892の OTN フォーラムで解決策を見つけました。

提案されたように、私はこれをweb.xml

<jsp-config>  
    <jsp-property-group>
        <url-pattern>*.jsp</url-pattern>
        <page-encoding>utf-8</page-encoding>
    </jsp-property-group> 
</jsp-config>

そして、これを私のJSPページに

<jsp:directive.page contentType="text/html;charset=utf-8"/>

したがって、IEとFFで正しく機能しました。

于 2013-02-04T11:43:19.927 に答える
0

character setクライアントからのリクエストの送信とサーバーからのリクエストの受信から、サーバーからのレスポンスの送信とクライアントからのレスポンスの受信まで、Web アプリケーションの操作のチェーン全体で同じものを保持する必要があります。

UTF-8web.xml でエンコーディングを使用すると、サーバーによるメソッドのリクエスト受信を除くすべてのステップで問題ありGETません (アプリケーション サーバー コネクタを使用するように構成する必要がありますUTF-8)。

あなたのデータベースもそうであるべきでUTF-8あり、(私がイタリアで多くの場合に見たように)そうではないWE81ISO8859P1ことに注意してくださいP15...

UTF-8 には必要なものがすべて揃っています。どこでも使用するだけで問題ありません。

重要な注意として、常に文字セットを指定することを忘れないでください。

  • Stringsから新規作成Byte Arrays

    それ以外のnew String(myByteArray);

    使用するnew String(myByteArray,"UTF-8");

  • Byte Arraysから取得する場合Strings:

    それ以外のmyString.getBytes();

    使用するmyString.getBytes("UTF-8");

于 2013-02-04T13:14:04.320 に答える
0

おそらく、ブラウザの設定とは異なる文字エンコーディングを使用しています。たとえば、UTF-8 Unicode には、ISO-8859-1 との違いがいくつかあります。外国のサイトはさらに悪いです。通常、ブラウザはそれを自動検出できますが、常に機能するとは限りません。

表示メニュー>文字エンコードに移動し、正しく表示されるオプションが見つかるまで、そこにあるオプションを試してください。

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

また

header('Content-Type: text/html; charset=UTF-8'); 
于 2013-02-04T10:25:38.587 に答える