Codierungsproblem bei ini-Bearbeitung per VBS
Ich möchte eine von einem Programm erstelle ini-Datei per VBScript bearbeiten. Doch scheinbar kommt mir die Zeichenkodierung in die Quere.
Welche Zeichenkodierungen unterstützt VBScript denn?
Servus Leute,
wenn ich mich nicht täusche ist die Standardzeichenkodierung unter Windows doch wohl ANSI. Damit funktioniert die Editiernug auch wunderbar.
Nun speichert das Programm, dass die ini-Datei erstellt, seine Einstellungen jedoch im UTF-16 LE Format. Damit kommt mein VBScript wohl nicht klar. Das auslesen der ini-Datei per FileSystemObject liefert nur Schrott, einen TextStream per MsgBox nur "ÿþ[" ausgibt (unabhängig vom ini-Inhalt) und ab ca. 130 (ANSI / = 260 UDF-16 LE) Zeichen einen Error beim schreiben in eine Datei erzeugt
Wenn ich den Text per Editor manuell in eine andere ini-Datei kopiere (per Windows erstellt = ANSI Codierung), funktioniert alles, vom Textauslesen bis zum Textschreiben.
Meine Frage ist nun ob jemandem Einschränkungen oder Probleme von VBS mit verschiedenen Zeichenkodierungen bekannt sind und ob es dafür einen Workaround o.ä. gibt.
ini-Datei (Ausschnitt, gibt aber auch schon einen Schreib-Error):
VBScript Beispiel:
Gruß,
halo7one
Welche Zeichenkodierungen unterstützt VBScript denn?
Servus Leute,
wenn ich mich nicht täusche ist die Standardzeichenkodierung unter Windows doch wohl ANSI. Damit funktioniert die Editiernug auch wunderbar.
Nun speichert das Programm, dass die ini-Datei erstellt, seine Einstellungen jedoch im UTF-16 LE Format. Damit kommt mein VBScript wohl nicht klar. Das auslesen der ini-Datei per FileSystemObject liefert nur Schrott, einen TextStream per MsgBox nur "ÿþ[" ausgibt (unabhängig vom ini-Inhalt) und ab ca. 130 (ANSI / = 260 UDF-16 LE) Zeichen einen Error beim schreiben in eine Datei erzeugt
Wenn ich den Text per Editor manuell in eine andere ini-Datei kopiere (per Windows erstellt = ANSI Codierung), funktioniert alles, vom Textauslesen bis zum Textschreiben.
Meine Frage ist nun ob jemandem Einschränkungen oder Probleme von VBS mit verschiedenen Zeichenkodierungen bekannt sind und ob es dafür einen Workaround o.ä. gibt.
ini-Datei (Ausschnitt, gibt aber auch schon einen Schreib-Error):
[\Software\PROGRAMX\AlbumArt]
LastAlbumName=str:test
JPG_Quality=int:80
ExtractType=int:0
ExtractTimeSec1=int:60
ExtractTimeSec2=int:300
VBScript Beispiel:
Dim FSO, FileName, File, FileText
Const ForReading = 1, ForWriting = 2
Set FSO = CreateObject("Scripting.FileSystemObject")
FileName = "New.ini"
Set File = FSO.OpenTextFile(FileName, ForReading, False)
FileText = File.ReadAll
File.Close
MsgBox FileText
MsgBox Len(FileText)
Text = FileText & "sonstwas"
Set File = FSO.OpenTextFile(FileName, ForWriting, True)
File.Write Text
File.Close
Gruß,
halo7one
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 133093
Url: https://administrator.de/contentid/133093
Ausgedruckt am: 20.11.2024 um 04:11 Uhr
2 Kommentare
Neuester Kommentar
Hallo halo7one!
Versuche es mal mit:
4. Parameter Tristate = True (Unicode)
Gruß Dieter
Versuche es mal mit:
Set File = FSO.OpenTextFile(FileName, ForReading, False, True)
Gruß Dieter