AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Unicode über Pipe in Delphi empfangen

Ein Thema von nobby · begonnen am 17. Apr 2011 · letzter Beitrag vom 18. Apr 2011
 
nobby

Registriert seit: 1. Sep 2004
12 Beiträge
 
#1

Unicode über Pipe in Delphi empfangen

  Alt 17. Apr 2011, 15:52
Hallo zusammen

In einer bestehenden Delphi-Applikation wird eine in VC++ geschriebene Console-Anwendung mittels 'CreateProcess' gestartet und dessen cout-Meldungen über 'CreatePipe' abgefangen und in eimem TMemo angezeigt. Das klappte in D2007 und ANSI-Text bis anhin ganz gut.

Nun habe ich die Aufgabe, die ganze Applikation Unicode-fähig zu machen. D.h. die VC++ Console-Anwendung soll Unicode-Meldungen an das Delphi-GUI senden. Den Delphi-Teil habe ich bereits erfolgreich auf XE migriert. Zum testen der Pipe-Kommunikation habe ich ein einfaches C++ Consoleprogramm (UNICODE) geschrieben, welches folgende Unicode-Meldung (L = Unicode string literal) über wcout absetzt:

std::wcout << L"Using wcout: Кирилица èéøÞǽлљΣæča" << std::endl;

In einer DOS-Konsole (cmd mit Lucida Unicode Font) wird die Meldung korrekt dargestellt. Ebenso wenn ich den Output mit >> in eine Datei umleite.

Wird das Programm aber von Delphi aus gestartet, empfange ich nicht die gewünschten Daten! Wenn ich die empfangenen Daten als buffer of Char (WideChar in XE) behandle, erhalte ich:

獕湩⁧捷畯㩴퀠킚톸킀킸킻톸킆₰ꣃ꧃룃黃뷇믐駑ꏎꛃ跄ൡ

Wenn ich die Pipedaten in einen AnsiChar buffer einlese, erhalte ich:

Using wcout: Кирилица èéøÞǽлљΣæÄa

D.h. zumindest die Chars < 128 werden richtig interpretiert (was auf eine UTF-8 Kodierung hindeutet).
Wenn ich die anderen Zeichen als Doppel-Byte interpretiere, erhalte ich Werte im Bereich von $C300-$D1FF welche im chinesischen Bereich von Unicode liegen - sollten aber im kyrillischen Bereich um $0400 liegen.

Um das Problem einzugrenzen, habe ich versucht, eine Delphi XE-Konsoleanwendung zu erstellen. Diese ist aber mit WriteLn nicht Unicode-fähig.

Hat jemand einen Hinweis oder eine Idee dazu?

Besten Dank,
Nobby
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:55 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz