Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/mono.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/mcs/class
diff options
context:
space:
mode:
authormonojenkins <jo.shields+jenkins@xamarin.com>2020-02-19 22:06:38 +0300
committerGitHub <noreply@github.com>2020-02-19 22:06:38 +0300
commit76126c14e917080b1d868c4c232e918d091d1bf3 (patch)
treef187850876877120cc7d24f57f8a9e88f4ec4a3a /mcs/class
parentbfd182bd20d22923ca43fe2de59ca6056eb6dacd (diff)
[2020-02] [bcl] Default XmlSerializer stream serialize to UTF8 Encoding (#18907)
* [mcs] Default XmlSerializer stream serialize to UTF8 Encoding * [bcl] Add XmlSerialize Test to preserve UTF chars in stream
Diffstat (limited to 'mcs/class')
-rw-r--r--mcs/class/System.XML/System.Xml.Serialization/XmlSerializer.cs8
-rw-r--r--mcs/class/System.XML/Test/System.Xml.Serialization/XmlSerializerTests.cs13
2 files changed, 15 insertions, 6 deletions
diff --git a/mcs/class/System.XML/System.Xml.Serialization/XmlSerializer.cs b/mcs/class/System.XML/System.Xml.Serialization/XmlSerializer.cs
index 60bbc316699..7ef8b2ca554 100644
--- a/mcs/class/System.XML/System.Xml.Serialization/XmlSerializer.cs
+++ b/mcs/class/System.XML/System.Xml.Serialization/XmlSerializer.cs
@@ -429,13 +429,9 @@ namespace System.Xml.Serialization
}
}
- static Encoding DefaultEncoding = Encoding.Default;
-
public void Serialize (Stream stream, object o)
{
- XmlTextWriter xmlWriter = new XmlTextWriter (stream, DefaultEncoding);
- xmlWriter.Formatting = Formatting.Indented;
- Serialize (xmlWriter, o, null);
+ Serialize (stream, o, null);
}
public void Serialize (TextWriter textWriter, object o)
@@ -452,7 +448,7 @@ namespace System.Xml.Serialization
public void Serialize (Stream stream, object o, XmlSerializerNamespaces namespaces)
{
- XmlTextWriter xmlWriter = new XmlTextWriter (stream, DefaultEncoding);
+ XmlTextWriter xmlWriter = new XmlTextWriter (stream, Encoding.UTF8);
xmlWriter.Formatting = Formatting.Indented;
Serialize (xmlWriter, o, namespaces);
}
diff --git a/mcs/class/System.XML/Test/System.Xml.Serialization/XmlSerializerTests.cs b/mcs/class/System.XML/Test/System.Xml.Serialization/XmlSerializerTests.cs
index 61835e709a0..e87df12964e 100644
--- a/mcs/class/System.XML/Test/System.Xml.Serialization/XmlSerializerTests.cs
+++ b/mcs/class/System.XML/Test/System.Xml.Serialization/XmlSerializerTests.cs
@@ -2676,6 +2676,19 @@ namespace MonoTests.System.XmlSerialization
Assert.AreEqual ("<:GenComplexStructOfInt32String http://www.w3.org/2000/xmlns/:xsd='http://www.w3.org/2001/XMLSchema' http://www.w3.org/2000/xmlns/:xsi='http://www.w3.org/2001/XMLSchema-instance'><:something>123</><:simpleclass><:something>456</></><:simplestruct><:something>789</></><:listclass><:somelist><:int>100</><:int>200</></></><:arrayclass><:arr><:int>11</><:int>22</><:int>33</></></><:twoclass><:something1>10</><:something2>Ten</></><:derivedclass><:something1>two</><:something2>2</><:another1>1</><:another2>one</></><:derived2><:something1>4</><:something2>four</><:another1>3</><:another2>three</></><:nestedouter><:outer>5</></><:nestedinner><:inner>six</><:something>6</></></>", WriterText);
}
+ [Test]
+ public void TestSerializeStreamPreserveUTFChars () {
+ string foo = "BÄR";
+ XmlSerializer serializer = new XmlSerializer (typeof (string));
+
+ MemoryStream stream = new MemoryStream ();
+
+ serializer.Serialize (stream, foo);
+ stream.Position = 0;
+ foo = (string) serializer.Deserialize (stream);
+ Assert.AreEqual("BÄR", foo);
+ }
+
[Test] // bug #80759
public void HasNullableField ()
{