2009-07-25 5 views
1

Ich verwende XmlTextWriter, um bestimmte Konfigurationselemente für mein Programm zu speichern (es sind nur 10-15 Zeichenfolgenwerte, deshalb verwende ich XmlTextWriter). Mein Code sieht wie folgt aus:XmlTextWriter: Erlaubt Unicode?

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

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

writer.Close(); 

Ich möchte die paramX Werte ermöglichen Unicode enthalten. Nichts ist zu ausgefallen - diese Werte stammen aus Textfeldern, in die der Benutzer Daten eingibt, und ich möchte, dass das System global gut funktioniert (Chinesisch, Japanisch, Hebräisch, Arabisch usw.). Ich analysiere die Daten nicht, ich möchte nur, dass sie beim nächsten Laden des Programms gut dargestellt werden.

Wie kann dies erreicht werden?

+0

FYI, Sie sollten nicht 'neue XmlTextReader()' oder 'neue XmlTextWriter()' verwenden. Sie sind seit .NET 2.0 veraltet. Verwenden Sie stattdessen 'XmlReader.Create()' oder 'XmlWriter.Create()'. –

Antwort

2

Der zweite Parameter des Konstruktors ist encoding. Die Standardcodierung, wenn NULL beibehalten wird, ist UTF8.

+0

Meinst du, dass mein Programm derzeit alle Sprachen erlaubt? –

+0

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

1

Nun, es gibt zwei Aspekte hier: Daten bewahren und anzeigen. XML kann sicherlich Unicode verarbeiten, und XmlTextWriter kann dies auch tun.

Was verwenden Sie, um die Daten anzuzeigen? Wenn es sich um eine Windows Forms-Anwendung handelt, müssen Sie die Schriftart möglicherweise explizit auf eine Schriftart festlegen, die alle gewünschten Unicode-Zeichen verarbeiten kann. Es lohnt sich, alle Zeichensätze zu testen, die Sie interessieren (Hebräisch usw.).

+0

Ich benutze WPF und Standard Text-Boxen. Habe ich ein Problem? –

+1

Nein, WPF sollte die automatische Schriftersetzung unterstützen, wenn der Standardschriftart Zeichen für ein bestimmtes Skript fehlen. Also sollte es dir gut gehen. –

+0

Ich würde immer noch testen, nur um sicherzustellen, obwohl :) –