Если возможно, создайте класс сериализации, тогда сделайте:
XmlSerializerNamespaces ns = new XmlSerializerNamespaces();
ns.Add("", "");
XmlSerializer serializer = new XmlSerializer(yourType);
serializer.Serialize(xmlTextWriter, someObject, ns);
Это более безопасно, и можно управлять пространствами имен с атрибутами при реальной необходимости в большем количестве управления.
Юникод берет верх и уже превзошел все другие. Я предлагаю вам сесть в поезд прямо сейчас.
Обратите внимание, что есть несколько разновидностей юникода. Джоэл Спольски дает обзор .
(График по состоянию на февраль 2012 г. , см. Комментарий ниже для более точных значений.)
Если вы хотите мирового господства , используйте UTF-8
полностью, потому что это охватывает всех человеческих персонажей, доступных в мире, включая азиатских, Кириллица, иврит, арабский, греческий и т. Д., А ISO-8859
ограничен только латинскими символами. Вы не хотите иметь Моджибаке .
UTF -8 поддерживается везде в сети. Только в конкретных приложениях этого нет. Вы всегда должны использовать utf-8, если можете.
Обратной стороной является то, что для таких языков, как китайский, utf-8 занимает больше места, чем, скажем, utf-16. Но если вы не планируете переходить на китайский язык, или даже если вы переходите на китайский язык, тогда подойдет utf-8.
Единственный недостаток использования utf-8 заключается в том, что он занимает больше места по сравнению с различными кодировками, но по сравнению с на западных языках он почти не занимает лишнего места, за исключением очень специальных символов и тех дополнительных байтов, с которыми вы можете жить. Ведь мы в 2009 году. ;)
ISO-8859-1 - отличная кодировка для использования, когда пространство ограничено, и вы когда-либо захотите кодировать символы только из базовых латинских языков, которые она поддерживает. И вам никогда не придется даже думать о том, чтобы обновить свое приложение для поддержки нелатинских языков.
utf8 - фантастический способ (а) использовать большую кодовую базу из 8 бит на символьный код библиотеки, которые уже есть существовать, или (б) быть европейским снобом. utf8 кодирует стандартный ascii в 1 байт на символ, латинский 1 в 2 байта на символ, восточноевропейские и азиатские языки получают 3 байта на символ. Возможно, он увеличится до 4 байтов на символ, если вы начнете пытаться кодировать древние языки, которых не существует в базовой многоязычной плоскости.
utf16 - отличный способ начать новую кодовую базу с нуля. Это полностью нейтрально с точки зрения культуры - каждый получает справедливые 2 байта на символ. Для древних / экзотических языков ему действительно нужно 4 байта на символ - что означает - в худшем случае - он так же плох, как и его старший брат:
utf32 - пустая трата места.