2013-07-03 94 views
0

我正在研究Spring和Hibernate中的項目。我正在從用戶那裏獲得輸入。用戶可以輸入印地文,英文或任何語言。如何從多種語言的用戶獲得輸入

如果用戶使用HINDI語言輸入數據,那麼我正在使用??????????像那樣。

請告訴我如何從任何語言的用戶獲得輸入的最佳方式。

回答

0

你在哪裏得到?您的應用程序可能存在多個圖層。你有視圖邏輯(通常是HTML),確保你的頁面編碼是UTF-8。 我真的不與字符編碼有經驗的,但我通常擺在我的網頁中<head>部分如下:

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

在我的JSP頁面的第一行我也把類似:

<%@ page language="java" pageEncoding="UTF-8"%> 

如果您通過AJAX調用發送您的請求,那麼您也可能必須在那裏定義編碼。通常使用相同的編碼作爲你的網頁(所以如果你按照前面的兩個步驟),但你永遠不知道。

然後下一步是您的網絡容器。您可能可以在應用程序或Web容器中配置UTF-8。對於Tomcat,你必須編輯server.xml並在<Connector>你必須添加(如果不存在的話):

URIEncoding="UTF-8" 

在你的網頁描述符,你也可以配置一個字符編碼過濾器是這樣的:

<filter> 
    <filter-name>encodingFilter</filter-name> 
    <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> 
    <init-param> 
     <param-name>encoding</param-name> 
     <param-value>UTF-8</param-value> 
    </init-param> 
    <init-param> 
     <param-name>forceEncoding</param-name> 
     <param-value>true</param-value> 
    </init-param> 
</filter> 
<filter-mapping> 
    <filter-name>encodingFilter</filter-name> 
    <url-pattern>/*</url-pattern> 
</filter-mapping> 

然後你有UTF-8中的數據,但是我發現你使用的是Hibernate,所以我假設你也在持續數據。確保你可以插入UTF-8數據。

首先你可能有某種JDBC連接器。通常,您可以將以下參數添加到它使數據編碼成UTF-8:

useEncoding=true&amp;characterEncoding=UTF-8 

有些數據庫產品創建基於拉丁字母方案(我知道這是在MySQL默認前一陣子)方案。

然後,您還可以在構建應用程序之前定義字符編碼。你可以的JSP文件自理定義的字符編碼(不知道它的問題那麼多),但如果你使用Maven構建,你還可以定義:

<properties> 
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
</properties> 

你應該做的最重要的事情是登錄所有級別並查看請求出錯的位置。如果您有不同的架構設計(例如,您可能正在使用Web服務),那麼您可能需要添加其他配置。

如果你想比這更好的答案,你可能想給像一些額外的細節:

  • 架構:Web服務?休息?數據庫?
  • 應用程序或Web容器:您使用的是Tomcat嗎?碼頭?的WebSphere? ...
  • 你在哪裏注意到????。在數據庫?控制器? ...
  • 記錄每個級別後,哪裏出錯?
  • 您是否使用特定的構建工具?

此外,您可能想要閱讀this answer,因爲它比我更詳細地介紹了大多數步驟。