我正在研究Spring和Hibernate中的項目。我正在從用戶那裏獲得輸入。用戶可以輸入印地文,英文或任何語言。如何從多種語言的用戶獲得輸入
如果用戶使用HINDI語言輸入數據,那麼我正在使用??????????像那樣。
請告訴我如何從任何語言的用戶獲得輸入的最佳方式。
我正在研究Spring和Hibernate中的項目。我正在從用戶那裏獲得輸入。用戶可以輸入印地文,英文或任何語言。如何從多種語言的用戶獲得輸入
如果用戶使用HINDI語言輸入數據,那麼我正在使用??????????像那樣。
請告訴我如何從任何語言的用戶獲得輸入的最佳方式。
你在哪裏得到?您的應用程序可能存在多個圖層。你有視圖邏輯(通常是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&characterEncoding=UTF-8
有些數據庫產品創建基於拉丁字母方案(我知道這是在MySQL默認前一陣子)方案。
然後,您還可以在構建應用程序之前定義字符編碼。你可以的JSP文件自理定義的字符編碼(不知道它的問題那麼多),但如果你使用Maven構建,你還可以定義:
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
你應該做的最重要的事情是登錄所有級別並查看請求出錯的位置。如果您有不同的架構設計(例如,您可能正在使用Web服務),那麼您可能需要添加其他配置。
如果你想比這更好的答案,你可能想給像一些額外的細節:
此外,您可能想要閱讀this answer,因爲它比我更詳細地介紹了大多數步驟。