2016-10-04 10 views
2

ヒンディー語のみの音声テキストのWebサイトを開発しています。しかし、私は次の問題を抱えており、適切な解決策を見つけることができませんでした。ヒンディー語のテキストが正しく表示されない

入力:102सुरंगों (例えば)

出力:(एकसौदो)_ NSWसà¥à¤°à¤à¤à¥

一方à¤数値部分が正しく解釈された場合、テキストは間違って処理されます。以下のようにしても、入力の変化:102सà¥à¤°à¤à¤à¥à¤

正しい出力がなければならない:(एकसौदो)_ NSWसुरंगों

これは、ボタンクリック時に呼び出されるindex.jsp内のコードです。

function submitPreprocessForm() { 

var postData=$("#maryWebClient").serializeArray(); 

$.ajax({ 
    url: "preprocess", 
    context:this, 
    type:"POST", 
    dataType:"json", 
    data:postData, 

    success: function(response){ 
     $("#INPUT_TEXT").val(response["x"]); 
     $("#INPUT_TEXT2").val(response["y"]); 
    }, 
      error: function(errorData){alert(errorData);} 
});} 

そして、これは、モジュール(その一部)は前処理のテキストを表示するためのurlPatternsを使用して呼び出されます。

Preprocessor.java

protected void processRequest(HttpServletRequest request, HttpServletResponse response) 
      throws ServletException, IOException, Exception { 
     response.setContentType("application/json;charset=utf-8"); 
     PrintWriter out=response.getWriter(); 

     String sent=request.getParameter("INPUT_TEXT"); 
     sent=sent.trim(); 
     NewJFrame2 njf=new NewJFrame2(); 
     String p=njf.read(sent); 

     Map m1 = new HashMap(); 
     m1.put("x", sent); 
     m1.put("y", p); 

     Gson gson = new Gson(); 
     String json = gson.toJson(m1); 
     System.out.println(json); 
     out.write(json); 
     out.close(); 
    } 

親切に私のミスに私を導きます。

注:NetBeansプロジェクトのプロパティとweb.xmlでエンコードをチェックしました。どちらも「UTF-8」に正しく設定されています。

+1

あなたは 'request.getParameter()'メソッドを使ってUTF-8で入力する必要があります。この質問を参照してください:[HttpServletRequest UTF-8エンコーディング](http://stackoverflow.com/questions/16527576/httpservletrequest-utf-8-encoding) – progyammer

+0

コントローラからの応答をどこから送信しますか? –

+0

@progy_rockどうすればいいですか、少し具体的にお願いしますか? – coder0007

答えて

0

getParameter()コールの前にrequest.setCharacterEncoding("UTF-8")を追加すると、この問題が解決されます。

関連する問題