Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

VBScript Zeichensatz konvertieren

Frage Entwicklung VB for Applications

Mitglied: Sensenmann

Sensenmann (Level 1) - Jetzt verbinden

07.08.2010 um 10:35 Uhr, 10612 Aufrufe, 5 Kommentare

Guten Morgen,

Ich würde mir gerne den Zeichensatz mehrerer Dateien mittels VBScript konvertieren. Nur habe ich leider bisher nur die Methode gefunden, direkt mit OpenTextFile zu Unicode zu konvertieren, was ich aber brauche ist von ANSI zu UCS-2 Little Endian. Gibt es so eine Funktion überhaupt in VBScript? Ich habe nun schon ewig gesucht und nix gefunden.

Mit freundlichen Grüßen
Sensenmann
Mitglied: LotPings
07.08.2010 um 18:09 Uhr
Hallo Sensenmann,

muss es denn VBscript sein?

Es gibt einen einen Win32 Port von GNU-Recode damit ist es auf der Kommandozeile kein Problem:
>chcp 1252 
Aktive Codepage: 1252. 
 
>echo AaÄäEeIiOoÖöUuÜüß>Ansi.txt 
 
>dumphex ansi.txt 
DumpHex Version 1.0.1 
Copyright (c) 2003 Robert Bachmann 
 
00000000h: 41 61 C4 E4 45 65 49 69 4F 6F D6 F6 55 75 DC FC AaÄäEeIiOoÖöUuÜü 
00000010h: DF 0D 0A                                        ß.. 
 
>recode cp1252..ucs-2 <ansi.txt >ucs2_BE.txt 
 
>dumphex ucs2_BE.txt 
DumpHex Version 1.0.1 
Copyright (c) 2003 Robert Bachmann 
 
00000000h: FE FF 00 41 00 61 00 C4 00 E4 00 45 00 65 00 49 þÿ.A.a.Ä.ä.E.e.I 
00000010h: 00 69 00 4F 00 6F 00 D6 00 F6 00 55 00 75 00 DC .i.O.o.Ö.ö.U.u.Ü 
00000020h: 00 FC 00 DF 00 0A                               .ü.ß.. 
 
>recode cp1252..ucs-2/21 <ansi.txt >ucs2_LE.txt 
 
>dumphex ucs2_LE.txt 
DumpHex Version 1.0.1 
Copyright (c) 2003 Robert Bachmann 
 
00000000h: FF FE 41 00 61 00 C4 00 E4 00 45 00 65 00 49 00 ÿþA.a.Ä.ä.E.e.I. 
00000010h: 69 00 4F 00 6F 00 D6 00 F6 00 55 00 75 00 DC 00 i.O.o.Ö.ö.U.u.Ü. 
00000020h: FC 00 DF 00 0A 00                               ü.ß... 
 
>
Gruß
LotPings
Bitte warten ..
Mitglied: 76109
07.08.2010 um 21:26 Uhr
Hallo LotPings!

Hab zum testen mal einen VBA-Code geschrieben, funktioniert auch soweit . Allerdings ist mir nicht ganz klar wo in Deinem Beispiel der CR (0Dh) abgeblieben ist?
Soll der entfernt werden oder wurde der nur vergessen?

Gruß Dieter

PS. In VB-Script funktioniert es nicht. Das Problem hierbei ist, dass kein Byte-Array definiert werden kann. Das habe ich durch Trickserei ja noch hinbekommen, aber ich schaffe es nicht Werte in das Byte-Array zu schreiben, funktioniert nicht mal mit CByte(..)
Bitte warten ..
Mitglied: 76109
08.08.2010 um 11:55 Uhr
Hallo Sensenmann, Hallo LotPings!

Habe jetzt was anderes versucht und mit der Konvertierung von Ansi nach UTF16 erhalte ich dieses Ergebnis, wobei hier der CR (0Dh) mit drinnen ist:
Ansi.txt
00000000h: 41 61 C4 E4 45 65 49 69 4F 6F D6 F6 55 75 DC FC AaÄäEeIiOoÖöUuÜü
00000010h: DF 0D 0A ß..
UTF16.txt
00000000h: FF FE 41 00 61 00 C4 00 E4 00 45 00 65 00 49 00 ÿþA.a.Ä.ä.E.e.I.
00000010h: 69 00 4F 00 6F 00 D6 00 F6 00 55 00 75 00 DC 00 i.O.o.Ö.ö.U.u.Ü.
00000020h: FC 00 DF 00 0D 00 0A 00 ü.ß.....

VB-Script:
01.
Const AnsiPath = "E:\Test\Ansi.txt" 
02.
Const Utf16Path = "E:\Test\Utf16.txt" 
03.
 
04.
Const adTypeBinary = 1 
05.
Const adTypeText = 2 
06.
Const adSaveCreateOverWrite = 2 
07.
  
08.
Dim BinaryStream, Text 
09.
     
10.
Set BinaryStream = CreateObject("ADODB.Stream") 
11.
         
12.
With BinaryStream 
13.
    .Type = adTypeText 
14.
    .Charset = "x-Ansi" 
15.
    .Open 
16.
    .LoadFromFile AnsiPath 
17.
     Text = .ReadText 
18.
    .Close 
19.
End With 
20.
         
21.
With BinaryStream 
22.
    .Type = adTypeText 
23.
    .Charset = "UTF-16" 
24.
    .Open 
25.
    .WriteText Text 
26.
    .SaveToFile Utf16Path, adSaveCreateOverWrite 
27.
    .Close 
28.
End With
Gruß Dieter
Bitte warten ..
Mitglied: Sensenmann
09.08.2010 um 16:08 Uhr
Hallo LotPings und didi1954,

vielen Dank für eure Antworten! Die VBScript-Lösung funktioniert einwandfrei!

Gruß
Sensenmann
Bitte warten ..
Mitglied: 76109
09.08.2010 um 16:45 Uhr
Hallo Sensenmann!

Zitat von Sensenmann:
vielen Dank für eure Antworten! Die VBScript-Lösung funktioniert einwandfrei!
Gern geschehen. Freut mich wenn's funktioniert

Gruß Dieter
Bitte warten ..
Neuester Wissensbeitrag
CPU, RAM, Mainboards

Angetestet: PC Engines APU 3a2 im Rack-Gehäuse

(1)

Erfahrungsbericht von ashnod zum Thema CPU, RAM, Mainboards ...

Ähnliche Inhalte
Entwicklung
gelöst Get ip from external txt file and use in vbscript (5)

Frage von thankusomuch zum Thema Entwicklung ...

Server
gelöst SQL-Tabelle portieren und dabei Daten konvertieren (1)

Frage von menace zum Thema Server ...

VB for Applications
gelöst Vbscript bestimmte Zeile ungeachtet der Nummerierung löschen (4)

Frage von aletri zum Thema VB for Applications ...

Heiß diskutierte Inhalte
Switche und Hubs
Trunk für 2xCisco Switch. Wo liegt der Fehler? (13)

Frage von JayyyH zum Thema Switche und Hubs ...

DSL, VDSL
DSL-Signal bewerten (13)

Frage von SarekHL zum Thema DSL, VDSL ...

Windows Server
Mailserver auf Windows Server 2012 (9)

Frage von StefanT81 zum Thema Windows Server ...