2013-07-03 46 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,因为它比我更详细地介绍了大多数步骤。