Указать кодировку XmlSerializer
у меня класс правильно определен, и после сериализации его в XML я не получаю кодировку.
Как я могу определить кодировку "ISO-8859-1"?
вот пример кода
var xml = new XmlSerializer(typeof(Transacao));
var file = new FileStream(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "transacao.xml"),FileMode.OpenOrCreate);
xml.Serialize(file, transacao);
file.Close();
вот начало xml генерируется
<?xml version="1.0"?>
<requisicao-transacao xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<dados-ec>
<numero>1048664497</numero>
2 ответов
следующее должно работать:
var xml = new XmlSerializer(typeof(Transacao));
var fname = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "transacao.xml");
var appendMode = false;
var encoding = Encoding.GetEncoding("ISO-8859-1");
using(StreamWriter sw = new StreamWriter(fname, appendMode, encoding))
{
xml.Serialize(sw, transacao);
}
если вы не возражаете, я спрошу, зачем вам это нужно ISO-8859-1
кодирование в частности? Вы могли бы использовать UTF-8
или UTF-16
(они более узнаваемы) и уйти с этим.
создайте StreamWriter с нужной кодировкой:
System.Text.Encoding code = *WhateverYouWant*
StreamWriter sw = new StreamWriter(file, code);