2016-02-20 2 views
1

J'utiliser ce code dans le contrôleur de asp.net Web api pour enregistrer le contenu XML en fichier:symboles avec Corrupted xml encodage iso-8859-1 dans une requête POST

using (var str = await Request.Content.ReadAsStreamAsync()) 
using (var fileStream = File.Create(@"C:\directory\somename.xml") 
{ 
    await str.CopyToAsync(fileStream); 
} 

Si je vous envoie ceci:

<?xml version="1.0" encoding="utf-8"?> 
<root>Förstelärare</root> 

c'est bon. Mais dans ce cas:

<?xml version="1.0" encoding="iso-8859-1"?> 
<root>Förstelärare</root> 

Je vois cela dans le fichier:

<?xml version="1.0" encoding="iso-8859-1"?> 
<root>Förstelärare</root> 

Je vois problème dans le codage. Comment réparer correctement? Je post demande une extension de chrome uisng RestClient. Dans un autre cas, nous téléchargeons des données du flux de demandes vers le serveur ftp en utilisant WebRequest. Le même problème.
Mise à jour: une autre chose intéressante - les données corrompues semblent correctes dans le bloc-notes de Windows mais corrompues dans Notepad ++.

Répondre

0

Il est codé correctement, mais étant affiché erroné. Cela arrive tout le temps entre les navigateurs et les serveurs. Parfois, 8859 est traduit, parfois non. Stick avec UTF-8, il semble prendre de l'importance. ISO-8859- * était à la mode la dernière décennie.