Problem mit Umlauten

forsterm

Erfahrenes Mitglied
Hallo,
ich benutze die Nini .net Configuration Library um daten in eine *.ini Datei zu schreiben.
Dabei git es nur ein Problem wenn ich einen String mit Umlauten (üöä) schreiben, dann werden die Umlaute zwar in dien *.ini Datei geschrieben, jedoch beim Auslesen wird ein leerer String angezeigt, weiß jemand, woran das liegen bzw. wie man das ändern könnte?

mfg
forsterm
 
Hi.

Hm.. Wahrscheinlich mit StreamWriter/Reader.

Vielleicht klappts ja mit dem BinaryWriter/Reader?
Schreibt/liest der Umlaute?


MfG Alexander12
 
cosmochaosmaker hat gesagt.:
Wie liest denn das txt ein?

Hallo,
gehen wir mal davon aus, dass die *.ini Datei so aussieht.

Code:
[Einstellungen]
Text=Ich möchte ein Stück Kuchen

Dann lese ich es so
Code:
Dim source As IniConfigSource
Dim config As IConfig
Dim Dateiname AsString
Dateiname = Application.StartupPath & "\iniDateien.ini"
source = New IniConfigSource(Dateiname)
config = source.Configs("Einstellungen")
Me.Label1.Text = config.Get("Text")
ein.

Ausgegeben wird dann das
Code:
Ich mchte ein Stck Kuchen

es soll aber das hier
Code:
Ich möchte ein Stück Kuchen
ausgegeben werden.

mfg
forsterm
 
@Alexander12: Poste Doch bitte wenn Du eine Lösung für das Problem weisst. :)
Jeder normale Coder würde eine TextReader/Writer hernehmen, denn der schreibt/liest Umlaute.
http://www.tutorials.de/forum/showpost.php?p=1172295&postcount=7

Besitzt IniConfigSource einen überladenen Konstuktor dem Du das gewünschte Encoding mitgeben kannst?
Wenn nicht, musst Du die Source hernehmen und dementspechend erweitern.
Btw. hab ich ein Tool auf TheCodeProject gesehen, was auch INI Dateien lesen und schreiben kann. :google:
 
Definier einen TextReader. Beim instanzieren weist ihm den StreamReader zu
und gibst das Encoding mit an. Wie das in VB ausschaut weiss ich nicht :-(,
aber ich kanns ja mal versuchen.:D
Code:
TextReader Reader = new StreamReader( Dateiname, System.Text.Encoding.UTF8 )

source = New IniConfigSource( Reader )
config = source.Configs( "Einstellungen" )
Me.Label1.Text = config.Get( "Text" )
MfG, cosmo
 
Hallo,
ich habe es so
Code:
Dim source As IniConfigSource
Dim config As IConfig
Dim Dateiname As String
Dateiname = Application.StartupPath & "\iniDateien.ini"
Dim Reader As New IO.StreamReader(Dateiname, System.Text.Encoding.UTF8)
source = New IniConfigSource(Reader)
config = source.Configs("Einstellungen")
Me.Label1.Text = config.Get("Text")
versucht, aber leider hat es nicht funktioniert.

mfg
forsterm
 
forsterm hat gesagt.:
Hallo,
ich habe es so [...] versucht, aber leider hat es nicht funktioniert.
o.0 Aha, sehr interessant. :rolleyes:
Wenn Du mal sagen könntest was die Exception dazu sagt,
sofern Du den Blöck überhaupt in einem try-catch Block ausfürhst. ;)

Kann Dir jetzt keinen Tipp weiter geben ausser das Du es mal mit dem TextReader versuchen solltest. ;)
http://nini.sourceforge.net/Reference/html/Nini.Config.IniConfigSourceConstructor.html

Code:
Dim Reader As TextReader
Reader = New StreamReader( Dateiname, System.Text.Encoding.UTF8 )
source = New IniConfigSource( Reader )
config = source.Configs( "Einstellungen" )
Me.Label1.Text = config.Get( "Text" )
MfG, cosmo
 
Zurück