J'ai un fichier XML codé en UTF-8 et je veux l'écrire dans un champ de texte dans SQL Server. UTF-8 est octet compatible avec le texte, il devrait être capable de le faire et ensuite lire le xml plus tard encore encodé comme utf-8.Ecrit UTF-8 dans un champ SQL Texte utilisant ADO.Net et conserve les octets UTF-8
Cependant, des caractères spéciaux tels que "Å", qui sont multi-octets en UTF-8, sont modifiés en cours de route.
J'ai code comme ceci:
byte[] myXML = ...
SqlCommand _MyCommand = new SqlCommand(storeProcedureName, pmiDB.GetADOConnection());
_MyCommand.CommandType = CommandType.StoredProcedure;
_MyCommand.Parameters.Add("xmlText", SqlDbType.Text);
_MyCommand.Parameters["xmlText"].Value = Encoding.UTF8.GetString(myXML);
_MyCommand.ExecuteNonQuery();
Je pense que la modification du tableau d'octets xml à chaîne change les caractères spéciaux à caractères UTF-16 qui sont ensuite changés à nouveau à la Latin1. Et Latin1 ÖÄÅ ne sont pas les mêmes que UTF-8 ÖÄÅ.
Comment écrire les octets xml UTF-8 dans le champ Texte sans les modifier?
Avez-vous déjà rencontré cet article? http://support.microsoft.com/kb/232580 –
Merci Mike, malheureusement il semble surtout dire ne pas le stocker comme UTF-8 – Carrick