Suite

Encodage des fichiers SLD


Je crée un fichier SLD et le télécharge via l'API REST en utilisant C#. Ce fichier SLD contient des caractères danois, mais le résultat final s'avère mauvais. Pour un test, j'enregistre le fichier xml sur le disque avant de l'envoyer.

voici mon code

Réponse WebResponse = null ; Requête WebRequest = null ; request = WebRequest.Create(sldUrl); request.Credentials = new NetworkCredential(_userName, _password); request.ContentType = "application/vnd.ogc.sld+xml" ; demande.Méthode = "PUT"; sldDocument.Save("c:	est.sld"); byte[] buffer = Encoding.UTF8.GetBytes(sldDocument.ToString()); Stream reqstr = request.GetRequestStream(); reqstr.Write(tampon, 0, buffer.Length); reqstr.Fermer(); réponse = demande.GetResponse(); réponse.Fermer();

Le fichier local contient ce

Trådhegn

Mais dans le fichier SLD sur le serveur, cela ressemble à ceci

Trüdhegn

J'ai essayé de lire le flux en Unicode mais cela me donne cette erreur

org.xml.sax.SAXParseException; numéro de ligne : 1 ; numéro de colonne : 2 ; Le balisage dans le document précédant l'élément racine doit être bien formé.

J'exécute geoserver 2.7 sur une machine Windows


Je l'ai fait fonctionner en changeant l'encodage en ISO-8859-1

byte[] buffer = Encoding.GetEncoding("ISO-8859-1").GetBytes(sldDocument.ToString());

Je ne sais pas pourquoi mais ça marche...


Voir la vidéo: Unicode and character encoding (Octobre 2021).