2011-06-09 34 views
0

我的servlet看起來像這樣如何從Java servlet生成中文字符?

protected void processRequest(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException 
    { 
    PrintWriter out=response.getWriter(); 

    out.println("<Html><Head><Title>Signup</Title></Head>\n<Body>\n"); 
    out.println("\u5982 電話\n"); 
    out.println("</Body>\n</Html>"); 
    } 

我的瀏覽器可以顯示來自其他網站的中國字。 我正在嘗試2種不同的方式來顯示中文字符,但他們都顯示爲? 什麼是正確的方法來做到這一點?

+0

您是否驗證過您的瀏覽器+系統+字體組合將顯示任何中文,通過輸出html轉義版本的unicode?例如「&#x5982;」? http://unicodinator.com – jlarson 2011-06-09 15:40:50

+1

請參閱http://stackoverflow.com/questions/1849058/change-encoding-of-httpservletresponse – 2011-06-09 15:50:29

回答

1

沒有明確的編碼已被設置爲響應。因此,響應將由默認編碼爲ISO-8859-1的容器編寫。

因此,您需要使用HttpServletResponse.setCharacterEncoding()HttpServletResponse.setContentType方法指定適當的字符編碼。這可能是:

response.setCharacterEncoding("GB18030"); 
response.setContentType("text/html; charset=GB18030"); 

您也可以使用UTF-8作爲顯式編碼。

0

嘗試增加

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> 
+0

這不是使用servlet – 2011-06-09 15:48:45

0

您需要發送Unicode,讓您的servlet發送UTF-8,並正確設置瀏覽器語言環境以正確解釋字符。