1

ユーザーからの入力を受け取るjspと、送信されたデータを処理するサーブレットがあります。Ajax リクエストを使用してサーブレットを呼び出し、パラメーターを渡します。

ここに私のjspコードがあります:

<%@ page language="java"  import="java.util.*,com.*,bo.*" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>

<script type="text/javascript">


function check(){
              var i = document.getElementById('input').value;
              var escapedi = escape(i);
              escapedi = escapedi.replace("%u2019","%27");
              var xhr = new XMLHttpRequest();
              xhr.open("GET","LinkHandler?text="+ escapedi,true);
              xhr.send();
       }


</script>
</head>
<body>
<input type="text" id="input"/><input type="button" onclick="check()" value="Submit"/>
</body>
</html>

そして、ここに私のサーブレットコードがあります:

protected void doGet(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException {
        String text = URLDecoder.decode(req.getParameter("text"),"UTF-8");
        System.out.println(text);
    }

コードは通常の Web プロジェクトでは正常に実行されますが、Google Web App プロジェクトで実行すると、英ポンドなどの一部の特殊文字が「?」として表示されます。

これを解決するにはどうすればよいですか?私を助けてください!

4

1 に答える 1

0

App Engine のロケールがローカル マシンのロケールと異なることが原因である可能性があります。を使用して、環境の現在のローカルを印刷できます

Locale.getDefault()

また、 setDefault() を使用して変更することもできます

于 2012-06-15T16:29:12.483 に答える