Utilisation d'Unicode avec des données XML

SQL Server 2005 stocke les données XML au moyen du système de codage UTF-16. Étant donné que les données UTF-16 sont de longueur variable, elles sont traitées en fonction d'un protocole orienté octet. Ceci signifie que les données UTF-16 peuvent être traitées d'une manière indépendante de l'ordre des octets sur des ordinateurs différents (primauté des octets de poids fort/faible). C'est pourquoi le format UTF-16 convient bien pour traverser des ordinateurs qui utilisent des systèmes de codage et de primauté des octets différents. Généralement, les données XML sont partagées sur plusieurs réseaux. Il est donc logique de conserver le stockage UTF-16 par défaut dans votre base de données et lors de l'exportation de données XML vers les clients.

Si vous devez spécifier un autre type de codage, utilisez des demandes FOR XML et spécifiez les éléments suivants :

  • La propriété Output Encoding d'un objet Response d'un flux de données XML dans Active Server Pages (ASP).
    Par exemple, le code ASP suivant indique au navigateur d'afficher un flux de données XML entrant en UCS-2 :

    <% cmdXML.Properties("Output Encoding") = "UCS-2" %>
    
  • Un codage de sortie dans une URL lorsque vous effectuez une demande HTTP.
    L'exemple suivant spécifie UCS-2 comme codage de sortie du document XML retourné par cette demande :

    http://IISServer/nwind?sql=SELECT+*+FROM+Customers+FOR+XML+AUTO&outputencoding=UCS-2
    
  • Un codage de sortie dans un modèle XML ou une feuille de style.
    L'exemple suivant spécifie UCS-2 comme codage de sortie dans l'en-tête de ce modèle XML :

    <?xml version ='1.0' encoding='UCS-2'?>
     <root xmlns:sql='urn:schemas-microsoft-com:xml-sql'
           sql:xsl='MyXSL.xsl'>
       <sql:query>
          SELECT FirstName, LastName FROM Employees FOR XML AUTO  
       </sql:query>
    </root> 
    

Un codage spécifié directement dans une feuille de style XSL remplace celui qui est spécifié dans le modèle. Les deux codages sont à leur tour remplacés par la propriété Output Encoding spécifiée sur la page ASP.

Lorsque vous insérez des données dans une base de données SQL Server au moyen de OPENXML, vous devez spécifier les types de données Unicode aux endroits de l'ensemble de lignes où des données multilingues pourraient apparaître afin de réduire la corruption des caractères.

Voir aussi

Concepts

Méthodes conseillées en XML

Autres ressources

OPENXML (Transact-SQL)

Aide et Informations

Assistance sur SQL Server 2005