2016-10-04 111 views
2

我正在開發僅用於印地語的文本到語音網站。但是我遇到了以下問題,無法找到合適的解決方案。印地文文本顯示不正確

輸入:102सुरंगों (例如)

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

雖然數字部分被正確解釋,文本被錯誤地處理。此外,輸入改變爲以下:102सà¥澶°à¤à¤à¥å¤

正確的輸出必須是:(एकसौदो)_ NSWसुरंगों

這是在按鈕單擊時調用的index.jsp中的代碼。

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(); 
    } 

請指引我到我的錯誤:

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);} 
});} 

這是模塊(的一部分),使用URL模式用於顯示文本預處理叫。

注意:我檢查了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")