Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

La ricerca di 0x0B

Finalmente l'ho trovato!

Il serializzatore .NET XML stava eseguendo l'escape del carattere non valido durante la serializzazione, ma poi non lo era ancora prima deserializzazione.

Quindi ho dovuto cercare gli escape per trovare lo 0x0B non sfuggito ... ragazzi davvero non divertenti!

Quindi questo:

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

Troverà effettivamente questo:

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

E sebbene sembri un XML valido, genererà un'eccezione di carattere non valido quando:

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

Molte grazie alle persone che sono intervenute per aiutare! È stato un aiuto prezioso!