应用程序中语言翻译后的SQL服务器搜索问题

时间:2014-08-12 13:54:14

标签: sql sql-server database collation

我正在开发一个多语言应用程序。现在支持英语和法语。

有一个创建活动的表单,它还支持创建的Event的搜索功能。 例如,我的活动名称是“活动旅游”。如果我搜索它,则返回相同的事件。

现在我的问题是,如果我将我的应用程序的语言改为法语,事件“事件之旅”将转换为“Visite de l'événement”。所以现在如果我想搜索“活动之旅”,则不会返回活动之旅。如果我在“événement”中搜索“eve”,那么也不会返回事件。

但如果我搜索有效字段,搜索工作正常,例如搜索“Visite de”等。

我该怎么做这个搜索。因为我的键盘不支持“é”字符。 处理此类情景的策略应该是什么。对于我将来支持的任何其他语言都可能发生。

1 个答案:

答案 0 :(得分:0)

我认为这可能已被回答here,但我将重新审视其中的内容。

您应该能够在不区分大小写的排序规则中强制进行比较。

如果您执行如下查询(不确定您的架构)

SELECT *
FROM events
WHERE
event_name COLLATE Latin1_general_CI_AI Like '%eve%' COLLATE Latin1_general_CI_AI

然后événement会回来。

然而,您将无法搜索翻译(因为这不是真正的SQL问题),所以您可以做的另一件事是保留一个翻译表并通过该表进行查找。