2009-01-21 4 views
7

J'ai modifié l'une des applications que j'ai faites pour le marché russe. Tout semblait aller bien, il y avait un problème quand vous entrez des données dans la base de données, mais il a été résolu en définissant le codage de la page à utf-8. Donc, l'insertion et la récupération fonctionne bien. J'ai rencontré un problème que je n'ai aucune idée de la façon d'aborder. Quand j'ai couru la requête suivante (simplifiée) dans l'analyseur de requête mssql (donc aucune chance qu'il ait été foiré dans le code), je n'obtiens aucun résultat même si plusieurs enregistrements correspondent: (version de mysql est 2005)cyrillic recherche

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

même si je modifie ce soit:

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

ou toute autre variante, juste ne fonctionne pas. La question est pourquoi?

P.S. Au cas où vous ne pouvez pas voir des lettres cyrilliques après que je soumets cela, il cherche Moscou comme une ville.

Quelqu'un a une solution ou une idée de ce qu'il faut faire?

Répondre

21

OK vient de trouver réponse et il est boiteux :) un peu. Vous devez ajouter N devant la chaîne unicode.

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

Je vais laisser cela au cas où quelqu'un d'autre resterait coincé avec elle.

3

Le N indique à SQL Server qu'il est unicode non ascii