Utilizzo del formato Unicode con i dati XML

In SQL Server i dati XML vengono archiviati utilizzando lo schema di codifica UTF-16. Poiché i dati UTF-16 sono di larghezza variabile, vengono elaborati in base a un protocollo orientato ai byte. Questo significa che i dati UTF-16 possono essere gestiti in modo indipendente dall'ordine dei byte su computer diversi (little endian o big endian). Pertanto, il formato UTF-16 è adatto per l'utilizzo su più computer con codifiche e sistemi di ordinamento dei byte diversi. Poiché i dati XML sono in genere ampiamente condivisi tra le reti, è consigliabile mantenere l'archiviazione UTF-16 predefinita dei dati XML nel database e quando si esportano i dati XML sui client.

Se è necessario specificare una codifica diversa, è possibile utilizzare richieste XML FOR e specificare gli elementi seguenti:

  • La proprietà Output Encoding di un oggetto Response del flusso di dati in formato XML nelle pagine ASP.

    Ad esempio, il codice ASP seguente indica che al browser di visualizzare un flusso di dati XML in entrata in UCS-2:

    <% cmdXML.Properties("Output Encoding") = "UCS-2" %>
    
  • Una codifica output in un URL quando si esegue una richiesta HTTP.

    Nell'esempio seguente viene specificata UCS-2 come codifica output del documento XML restituito da questa richiesta:

    http://IISServer/nwind?sql=SELECT+*+FROM+Customers+FOR+XML+AUTO&outputencoding=UCS-2
    
  • Una codifica output in un modello o foglio di stile XML.

    Nell'esempio seguente viene specificata UCS-2 come codifica output nell'intestazione del documento di modello XML corrente:

    <?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> 
    

Si noti che se una codifica è specificata direttamente in un foglio di stile XSL, l'eventuale codifica specificata nel modello verrà ignorata. Tuttavia, entrambe vengono ignorate se la proprietà Output Encoding viene specificata nella pagina ASP.

Quando si inseriscono dati in un database di SQL Server utilizzando OPENXML, è consigliabile specificare tipi di dati Unicode ovunque nelle righe possano essere presenti dati multilingue. Questo ridurrà al minimo il danneggiamento dei caratteri.

Vedere anche

Riferimento