Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

La quête de 0x0B

Enfin trouvé !

Le sérialiseur XML .NET échappait le caractère non valide lors de sa sérialisation, mais il le déséchappait ensuite avant désérialisation.

J'ai donc dû rechercher les évadés pour trouver le 0x0B non échappé ... vraiment pas drôle les gars !

Donc ceci :

  SELECT * from Mytable where Column like '%' + '&#xB' + '%'

Trouvera réellement ceci :

<?xml version="1.0"?>
      <Hashtable><key>313_other_10</key><value>&#xB</value></Hashtable>

Et bien que cela ressemble à du XML valide, il lèvera une exception de caractère non valide lorsque :

    XmlSerializer xs = new XmlSerializer(Type.GetType(Hashtable));
    StringReader stringReader = new StringReader(xml);
    obj = xs.Deserialize(stringReader);

Un grand merci aux personnes qui ont sauté pour aider! C'était une aide inestimable !