西里尔文搜索

时间:2009-01-21 20:03:05

标签: sql-server tsql sql-server-2005

我修改了我为俄罗斯市场制作的一个应用程序。一切似乎都很好,当您将数据输入数据库时​​出现问题但是通过将页面编码设置为utf-8来解决问题。因此插入和检索工作正常。我遇到问题我只是不知道如何解决。 当我在mssql查询分析器中运行以下查询(简化)时(因此没有机会在代码中搞砸了),即使有很多记录匹配,我也没有得到任何结果: (mysql的版本是2005年)

SELECT *
FROM institutions
WHERE city LIKE '%Москва%'
ORDER BY address1

即使我将其修改为:

SELECT *
FROM institutions
WHERE city='Москва'
ORDER BY address1

或其他一些变体,它只是不起作用。问题是为什么?

P.S。如果在我提交之后你看不到西里尔字母,它会搜索莫斯科作为一个城市。

任何人都有解决方案或想法该做什么?

2 个答案:

答案 0 :(得分:26)

好的,只是发现了答案而且很蹩脚:)您需要在unicode字符串前面添加N.

SELECT * FROM institutions WHERE city LIKE N'%Москва%' ORDER BY address1

我会留下这个以防万一其他人卡住它。

答案 1 :(得分:4)

N告诉SQL Server它是unicode而不是ascii