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, 4359 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
Ähnliche Inhalte
Google Android
gelöst Android Programmierung Problem mit Codierung von Umlauten (7)

Frage von lordzwieback zum Thema Google Android ...

Router & Routing
Cisco 2951 VPN Problem (2)

Frage von Serial90 zum Thema Router & Routing ...

Exchange Server
gelöst Exchange 2013 Outlook 2013 Autodiscover Mailbox Problem (GUID) (4)

Frage von Systembastler zum Thema Exchange Server ...

SAN, NAS, DAS
gelöst Synolgy 1815+ - Rechte- und Richtlinien-Problem User-Ordner Home (3)

Frage von Nintox zum Thema SAN, NAS, DAS ...

Heiß diskutierte Inhalte
Erkennung und -Abwehr
Virenschutz - Meinungen (28)

Frage von honeybee zum Thema Erkennung und -Abwehr ...

Windows 10
Welches OS für Firmengeräte? (18)

Frage von MarkusVH zum Thema Windows 10 ...

Netzwerke
Abisolierwerkzeug (18)

Frage von SarekHL zum Thema Netzwerke ...

Exchange Server
SBS2011: POP3-Connector 10 MB Grenze Email Benachrichtigung (17)

Frage von bogi1102 zum Thema Exchange Server ...