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 aus Excelauslesen und an Anwendung übergeben (Problem mit umlauten)

Frage Entwicklung VB for Applications

Mitglied: nulpen

nulpen (Level 1) - Jetzt verbinden

29.04.2013 um 12:15 Uhr, 4228 Aufrufe, 3 Kommentare

Hallo Zusammen,
vielleicht kann mir jemand helfen, ich habe schon rumgegoogelt und nix gefunden.

Ich übergebe aus einer Anwendung ein Parameter an eine VB-Scriptdatei, diese durchsucht eine XLS-Tabelle und schreibt einen gefundenen Wert wieder zurück.

Wenn ich das Programm über CMD mit script.vbs xxx aufrufe und mir den Rückgabewert mit MSGBOX anzeigen lasse
ist alles in Ordnung, die Umlaute werden sauber dargestellt.

Gebe ich aber den Wert mit

objStdOut.Write TEXT

wieder an das aufrufende Programm zurück, erscheinen die Umlaute mit Sonderzeichen.

TEXT=replace(TEXT,"ö","÷")
TEXT=replace(TEXT,"ä","õ")
TEXT=replace(TEXT,"ü","³")
TEXT=replace(TEXT,"Ö","Í")
TEXT=replace(TEXT,"Ä","-")
TEXT=replace(TEXT,"Ü","_")
TEXT=replace(TEXT,"ß","¯")

Hat leider auch nichts gebracht, die hier aufgeführten Zeichen sind diejenigen die als
Zeichen in der Software auftauchen.

Wie könnte ich das beheben ?

Ich habe nichts gefunden um Code-Page oder Sonstiges für objStdOut.Write zu hinterlegen.

Danke

Ralf






Mitglied: napperman
29.04.2013 um 13:57 Uhr
Moin!

Ich meine in VB muss der replace-part anders lauten:
TEXT = replace(TEXT, Chr(129), "ü")
TEXT = replace(TEXT, chr(132), "ä")
TEXT = replace(TEXT, chr(148), "ö")
TEXT = replace(TEXT, chr(129), "ü")
TEXT = replace(TEXT, chr(142), "Ä")
TEXT = replace(TEXT, chr(153), "Ö")
TEXT = replace(TEXT, chr(154), "Ü")
TEXT = replace(TEXT, chr(225), "ß")
Bitte warten ..
Mitglied: 76109
29.04.2013 um 15:56 Uhr
Hallo nulpen!

Also, wenn ich dieses VB-Script (Test.vbs)
01.
WScript.StdOut.Write "Ein Satz mit Umlauten <äöüßÄÖÜ>" 
per 'cscript //nologo Test.vbs' aufrufe, dann werden die Umlaute bei mir richtig dargestellt...

Gruß Dieter
Bitte warten ..
Mitglied: nulpen
30.04.2013 um 12:52 Uhr
Hallo Zusammen,

da ich das Script über ein anderes Programm aufrufe und abarbeiten lasse
(ohne sichtbare Ausgabe in der console), habe ich nun erkannt wie es funktioniert:

1. Der Zeichensatz der verwendet wird ist natürlich ANSI, demzufolge bekomme ich
über MSGBOX immer das "ö" angezeigt. (chr 246)
Bei der Übergabe an das Programm wird in meinem Fall aber der ASCII-Code übergeben, warum auch immer .
(Chr 148)

Somit habe ich jetzt folgendes eingebaut und es geht.

TEXT = replace(TEXT, Chr(252), chr(129)) 'ü
TEXT = replace(TEXT, chr(228), chr(132)) 'ä
TEXT = replace(TEXT, chr(246), chr(148)) 'ö
TEXT = replace(TEXT, chr(240), chr(142)) 'Ä
TEXT = replace(TEXT, chr(214), chr(153)) 'Ö
TEXT = replace(TEXT, chr(242), chr(154)) 'Ü
TEXT = replace(TEXT, chr(238), chr(225)) 'ß

Danke an napperman der mit den CHR-codes richtig lag, muss aber auf beiden Seiten eingesetzt werden.

Vielen Dank für die Hilfe


Ralf
Bitte warten ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Ähnliche Inhalte
Google Android
gelöst Android Programmierung Problem mit Codierung von Umlauten (7)

Frage von lordzwieback zum Thema Google Android ...

Visual Studio
gelöst Ein VBScript in Visual Studio 2013 als Windows Forms Anwendung anwenden (2)

Frage von Knuefi zum Thema Visual Studio ...

Windows Server
Google Chrome Web Store Problem auf Terminal Farm

Frage von dakoerry zum Thema Windows Server ...

Heiß diskutierte Inhalte
Router & Routing
gelöst Ipv4 mieten (22)

Frage von homermg zum Thema Router & Routing ...

Windows Server
DHCP Server switchen (20)

Frage von M.Marz zum Thema Windows Server ...

Exchange Server
gelöst Exchange 2010 Berechtigungen wiederherstellen (20)

Frage von semperf1delis zum Thema Exchange Server ...

Hardware
gelöst Negative Erfahrungen LAN-Karten (19)

Frage von MegaGiga zum Thema Hardware ...