0

私は2つの言語(英語とフランス語)でフォームを作成しています。誰かがその名前を入力すると、フォームはajaxを使用してデータベースから情報を照会します。悲しいことに、response.getWriter()。write( "Heyéè");を使用すると 関数それは'é''è'のような文字をサポートしていないようです。

これが私のjavascriptとajaxです:

        function fillBlanks(idOfInputText,valueOfInputText)
    {

        //Prepare a new ajaxRequest.
        if (window.XMLHttpRequest) 
        {// code for IE7+, Firefox, Chrome, Opera, Safari
            xmlhttp = new XMLHttpRequest();
        } else {// code for IE6, IE5
            xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
        }

        //Ajax receiving the response in this function
        xmlhttp.onreadystatechange = function() 
        {
            //state 4 is response ready.
            //Status 200 is page found.
            if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
                //Change the content of the select to ajax result.
                var content = [];
                content = decode(xmlhttp.responseText);

                document.getElementById('lastName').innerHTML = content[0];
                document.getElementById('firstName').innerHTML = content[1];
                document.getElementById('defaultPrinter').innerHTML = content[2];
                document.getElementById('dropDownRespExistant').innerHTML = content[3];

            }
        };

        //Send the Ajax request.
        xmlhttp.open('GET','mainServlet?command=ajax.FillBlanksHtml&ID='+ idOfInputText + '&VALUE=' + valueOfInputText, true);
        xmlhttp.send();
    }

これが私のJavaクラスです:

public class FillBlanksHtmlCommand extends FrontCommand
{
public static String userName;
public static String lastName;
public static String firstName;

@Override
public void processRequest(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException 
{
    String value = new String(request.getParameter("VALUE"));//get the ajax value

    response.getWriter().write(OracleUserFinder.findHtmlCodeForOracleUser(value));


} 
}

他の方法で特殊文字を送信できるかどうか知りたかったのです。そして、この関数が使用するエンコーディングを教えていただければ、それは素晴らしいことです!!

4

2 に答える 2

2

「HTTPPOSTリクエストの文字エンコードの検出」という質問に基づいて、リクエストを機能させるには、リクエストの文字エンコードをISO-8859-1からUTF-8に変更する必要があります。

最も簡単な方法は(質問の答えから):

<form accept-charset="UTF-8">

ここで提案されている他のソリューションを使用できますが。

応答については、次のようにUTF-8に文字セットを追加する必要があります。HTTP文字セットパラメータの設定

サーブレット(またはControllerクラス)に、次のコードを追加するだけです。

response.setContentType("text/xml; charset=UTF-8");
于 2013-02-15T15:57:42.773 に答える
1

jQueryを使用するのはどうですか

contentType: "application/x-www-form-urlencoded; charset=UTF-8"

このリンクを ご覧くださいhttp://www.gunith.com/2010/11/how-to-send-german-umlauts-through-jquery-ajax/

于 2013-02-15T16:02:33.417 に答える