Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.071 Beiträge
 
Delphi 12 Athens
 
#4

AW: UTF8 als WideString an ActiveX (LPCTSTR)

  Alt 22. Mai 2012, 14:02
Du darfst den UnicodeStriong/WideString nicht "einfach" nach ANSI umewandeln.
Alles was nicht umgewandelt werden kann, wird automatisch in ein "?" übersetzt. (MSDN-Library durchsuchenWideCharToMultiBye mit '?' als Ersetzungszeichen)

Du mußt schon über die Dateisystem-APIs den Pfad übersetzen lassen.
MSDN-Library durchsuchenGetShortPathName oder Delphi-Referenz durchsuchenExtractShortPathName

Ob du das dann als ANSI oder Unicode (welches hier scheinbar intern nach ANSI umgewandelt wird) weitergibst, ist egal, da die kurzen Dateinamen eh nur ASCII benutzen.



Wenn es intern mit wirklich auch UTF-8 arbeiten kann, dann wirst du wohl ebenfalls selber nach UTF-8 übersetzen müssen.
Mußt dann nur zusehn, daß dabei irgendwo ein WideString dazwischenkommt, welcher die UFT-8-Kodierung zerstören könnte.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu (22. Mai 2012 um 14:06 Uhr)
  Mit Zitat antworten Zitat