none
Question de point d'interrogation RRS feed

  • Question

  • Bonjour,

    Nous comparons le caractère unicode 65311 (full-with question mark) au caractère de point d'interrogation que nous connaissons tous, de code 63.

    Si nous exécutons :

    if N'?' = N'?'
        PRINT 'OK'
    ELSE PRINT 'KO'

    Nous btenons OK.
    Or si nous exécutons :

    SELECT UNICODE(N'?') AS FQM, UNICODE('?') AS QM

    Nous obtenons bien deux valeurs différentes.
    Le seul moyen d'obtenir KO est de COLLATE une collation binaire.
    Pourtant ces caractères sont utilisés par les japonais, les chinois et les coréens, ce qui devrait donc marcher avec les collations respectives ...

    Une idée ?

    @++ ;)
    mardi 19 janvier 2010 03:45

Réponses

  • Tiens :-)

    Ta question est intéressante ...normal une question de mvp ... :-)

    Je pense que ton problème vient du fait que par défaut ta collation est width-insensitive ?

    Si je fais le test suivant le résultat est également KO :

    if N'' = N'?' COLLATE Latin1_General_CI_AI_WS

        PRINT 'OK'

    ELSE PRINT 'KO'

    ++

    MCDBA | MCITP SQL Server 2005 | MCTS SQL Server 2008 | LPI Linux 1
    • Marqué comme réponse Alex Petrescu mardi 26 janvier 2010 15:18
    mercredi 20 janvier 2010 21:45
    Modérateur