如何比较JAVA中的不同语言字符串值?
在我的网络应用程序中,我使用两种不同的语言,即英语和阿拉伯语。
我的Web应用程序中有一个搜索框,如果我们按名称或部分名称搜索,那么它将通过比较用户的“Hometown”从DB中检索值
说明:
就像一个用户属于家乡“加利福尼亚”并且他搜索一个名字叫“Victor”然后我的查询将首先看到拥有相同家乡“加利福尼亚”的人和在“加利福尼亚”作为故乡的人的名单中将搜索“Victor”* name *,并检索将“California”作为其家乡的用户以及名称或部分名称中的“victor”。
问题是如果家乡“加利福尼亚”用英语保存,它将比较并检索值。但“加利福尼亚”将用阿拉伯语保存为“كاليفورنيا”。在这种情况下,家乡比较失败,它无法检索值。
我希望我的查询应该找到两个相同的家乡并检索值。可能吗?
对于这种比较逻辑,我应该考虑什么样的替代方案。我很迷惑。有什么建议吗?
编辑:
*我有一个想法,如果有家乡,那么可以使用谷歌翻译或音译,并将家乡改为另一种语言。如果是英语,那么阿拉伯语或者如果是英语,那么阿拉伯语,并给搜索结果加入两者。有什么建议吗?*
没有找到相关结果
已邀请:
6 个回复
降女陷费券
傻寺俊擒
你可以介绍语言代码和商店
然后你的搜索将匹配“加利福尼亚”或“كاليفورنيا”给你id 001,然后你可以使用它来加载你的数据的所有翻译(或只是当前输出语言的数据。)这个sceme可以用于任何语言数量,并且具有额外的优势,您无需预填表。您可以在记录成为已知时添加新的翻译。 (警告:我只是重复了你的阿拉伯语字符串,我无法阅读它,也'ar'很可能不是正确的语言代码,但你明白了。)
膝垫富顷
锯康
矾醒忻
的方式覆盖
(对不起,如果我在这里犯了错误,只是从上面复制粘贴)。
拟蓬
在将字符(16位)转换为字节(8位)的任何系统接口中,您需要确保编码正确。 浏览器到Servlet容器 当您从网页执行GET或POST请求时,浏览器将查看1)来自服务器的HTTP标头,尤其是
,如果存在,将覆盖HTML元标题
。 在servlet容器端,HttpServletRequest.getParameter()将具有您最有可能需要在服务器设置中设置的编码。 示例tomcat的server.xml
Servlet容器到数据库 数据库需要具有正确的编码,否则排序等不正确。 示例my.cnf for MySQL
然后需要为UTF-8设置JDBC驱动程序。 示例JDBC连接字符串
System.out的 不能依靠
来验证事物。首先它取决于使用System.property
设置的java vm默认编码,其次是你在其中执行System.out的终端,需要设置为并支持UTF-8。不要信任System.out! 一旦VM中的String是正确的字符,它就不会受到编码的影响。在内存中,字符串中的每个字符串都是16位,它(几乎)覆盖了utf-8可以编码的所有字符。您可以将字符串写入文件并调查该文件,以确切知道您的VM中是否有正确的字符。