Mario Sedlak
Softwareentwicklung
Computer
Software
Hauptthemen

Zeichensätze in Visual Basic Script

In Visual Basic Script gibt es neben den alten Stringfunktionen, die auf einem 8-bit-Zeichensatz basieren, zusätzlich welche, die Unicode (UTF-16) verwenden. Unicode-Strings heißen dort "wide strings".

Beispiel:

8-bit-Zeichensatz Unicode
asc("€") = 128 ascw("€") = 8364

Zeichensatz ändern

Das ADODB.Stream-Objekt unterstützt alle gängigen Zeichensätze. Verwendung:

Set objStream = Wscript.CreateObject("ADODB.Stream")
objStream.Open
objStream.Charset = "utf-8"
objStream.Type = 1  'adTypeBinary
objStream.Write arrBytes
objStream.Position = 0
objStream.Type = 2  'Text
UTF8Decode = objStream.ReadText

Damit kann ich Unicode-Antworten von Webservern in "normale" 8-bit-Strings umwandeln, mit denen ich unter Visual Basic Script weiterarbeiten kann.

In der anderen Richtung – wenn ich einen String in UTF-8 codieren will – sieht es so aus:

Set objStream = Wscript.CreateObject("ADODB.Stream")
objStream.Open
objStream.Type = 2  'Text
objStream.Charset = "utf-8"
objStream.WriteText "Schöne Grüße"
objStream.Position = 0
objStream.Type = 1  'adTypeBinary
UTF8Encode = objStream.Read  'array of bytes

Wichtig ist, dass die Charset-Eigenschaft schon gesetzt wird, bevor der Inhalt übergeben wird. Nachträglich wird nichts umgewandelt.

Weiter

Softwareentwicklung: Softwarefehler
Nächstes Hauptthema: Geld