2009-07-25 5 views
1

Я использую XmlTextWriter для сохранения определенных элементов конфигурации для моей программы (это всего лишь 10-15 строковых значений, поэтому я использую XmlTextWriter). Мой код выглядит следующим образом:XmlTextWriter: разрешает Unicode?

XmlTextWriter writer = new XmlTextWriter("FILENAME.XML", null); 

writer.WriteStartElement("Config"); 
writer.WriteElementString("Param1", param1); 
writer.WriteElementString("Param2", param2); 
... 
writer.WriteEndElement(); 

writer.Close(); 

Я хотел был бы позволить значения paramX содержать unicode. Ничего особенного - эти значения исходят из текстовых полей, в которые пользователь вводит данные, и я хочу, чтобы система работала нормально во всем мире (китайский, японский, иврит, арабский и т. Д.). Я не разбираю данные, я просто хочу, чтобы он был хорошо представлен в следующий раз, когда загружается программа.

Какой способ достичь этого?

+0

FYI, вы не должны использовать 'new XmlTextReader()' или 'new XmlTextWriter()'. Они устарели с .NET 2.0. Вместо этого используйте 'XmlReader.Create()' или 'XmlWriter.Create()'. –

ответ

2

Второй параметр конструктора - encoding. Кодировка по умолчанию, если left null - UTF8.

+0

Вы имеете в виду, что моя программа в настоящее время позволяет использовать все языки? –

+0

Да! http://en.wikipedia.org/wiki/UTF-8#Advantages_3 – MyItchyChin

1

Ну, здесь есть два аспекта: сохранение данных и их отображение. XML, безусловно, может обрабатывать Unicode, и XmlTextWriter тоже может это сделать.

Что вы используете для отображения данных? Если это приложение Windows Forms, вам может потребоваться явно установить шрифт на тот, который может обрабатывать весь нужный Unicode. Это определенно стоит проверить со всеми наборами персонажей, которые вас интересуют (иврит и т. Д.).

+0

Я использую WPF и стандартные текстовые поля. Будет ли у меня проблема? –

+1

Нет, WPF должен обрабатывать автоматическую замену шрифта, если стандартный шрифт не содержит символов для определенного скрипта. Так что все должно быть хорошо. –

+0

Я бы все еще тестировал, чтобы убедиться, хотя :) –

Смежные вопросы