Einzelnen Beitrag anzeigen

Blup

Registriert seit: 7. Aug 2008
Ort: Brandenburg
1.429 Beiträge
 
Delphi 10.4 Sydney
 
#10

AW: Stringkonvertierung

  Alt 4. Jul 2014, 10:15
Dann stimmt vermutlich die im Windows eingestellte OEM-Code-Page nicht.
Stell mal in den Ländereinstellungen auf Englisch(USA) und speichern.
Danach wieder auf Deutschland(Deutsch), speichern und Windows neu starten.

Zitat:
[edit] @Blup: Lies mal die Bemerkungen zu OEMToChar/CharToOEM, Dein Code wird unter Delphi > 2007 knallen. Außerdem rät Microsoft selbst von der Verwendung ab.[/edit]
Zitat:
Security Considerations

Using this function incorrectly can compromise the security of your application.
Ich hab nicht vor diese Funktion inkorrekt zu benutzen. Deshalb auch schön in eigene Funktionen gekapselt die mit AnsiString und PAnsiChar arbeiten.
Das sollte auch nach Delphi 2007 keine Probleme verursachen.

In neueren Delphi-Versionen könnte man auch das mal versuchen, kann ich aber grad nicht testen:
Delphi-Quellcode:
function ConvertCodePage(const S: _RawByteStr; AFromCodePage, AToCodepage: Word): _RawByteStr;
begin
  Result := S;
  SetCodePage(Result, AFromCodePage, False); // Codepage der Ausgangsdaten nur festlegen
  SetCodePage(Result, AToCodepage, True); // Codepage umstellen und Daten konvertieren
end;

sl.Text := ConvertCodePage(sl.Text, 437, 850);
  Mit Zitat antworten Zitat