J'ai une string que je veux sérialiser puis déserialiser.
Or quand je met un caractère spécial ca plante.

Code qui marche
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
using System;
using System.Collections;
using System.IO;
using System.Runtime.Serialization.Formatters.Binary;
using System.Text;
using System.Xml;
using System.Xml.Serialization;


namespace MonProg
{
	class Class1
	{
		[STAThread]
		static void Main(string[] args)
		{
			string test="ecole";
			MemoryStream stream = new MemoryStream();
			BinaryFormatter bf = new BinaryFormatter();
			bf.Serialize(stream,test);

			stream.Position = 0;
			string data = new StreamReader(stream, Encoding.UTF7).ReadToEnd();
			
			stream = new MemoryStream(UTF7Encoding.Default.GetBytes(data));			
			bf = new BinaryFormatter();
			stream.Position = 0;
			object XX = bf.Deserialize(stream);

			Console.WriteLine(XX);
			Console.ReadLine();

		}
	}
}
Mais si je change ma variable test en
string test="ecole€";

sur la ligne object XX = bf.Deserialize(stream); j'ai ce message d'erreur

Une exception non gérée du type 'System.ArgumentException' s'est produite dans mscorlib.dll

Informations supplémentaires*: Un octet non valide a été trouvé à l'index 6.
Mais si je laisse
string test="ecole";
Et qu'au lieu de mettre de l'UT7 je met de l'UTF8

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
string data = new StreamReader(stream, Encoding.UTF8).ReadToEnd();
stream = new MemoryStream(UTF8Encoding.Default.GetBytes(data));
J'ai ceci comme erreur sur la ligne

object XX = bf.Deserialize(stream);

Une exception non gérée du type 'System.Runtime.Serialization.SerializationException' s'est produite dans mscorlib.dll

Informations supplémentaires*: Le flux binaire ne contient pas de BinaryHeader valide, 0 raisons possibles*: flux non valide ou modification de la version de l'objet entre la sérialisation et la désérialisation.

Merci beaucoup pour vos éclaircissements