Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.051 Beiträge
Delphi 12 Athens
|
AW: WideString zu AnsiString konvertieren
15. Feb 2011, 00:45
Sehr interessant.
jedenfalls hatte ich damals in meinem D7 solche Probleme nicht.
Geht es hiermit?
Delphi-Quellcode:
function UTF16ToCodepage(S: WideString): AnsiString;
var
i: Integer;
begin
if S <> '' then
begin
i := WideCharToMultiByte(CP_ACP, 0, PWideChar(S), Length(S),
nil, 0, nil, nil);
SetLength(Result, i);
WideCharToMultiByte(CP_ACP, 0, PWideChar(S), Length(S),
PAnsiChar(Result), i, nil, nil);
end else
Result := '';
end;
Delphi-Quellcode:
'GStreamer Codec and Totem Movie Player for Linux'#$D#$A
Evaluate von s (String) NACH der Funktion ergibt:
'ÿþG'#0'S'#0't'#0'r'#0'e'#0'a'#0'm'#0'e'#0'r'#0' '#0'C'#0'o'#0'd'#0'e'#0'c'#0' '#0'a'#0'n'#0'd'#0' '#0'T'#0'o'#0't'#0'e'#0'm'#0' '#0'M'#0'o'#0'v'#0'i'#0'e'#0' '#0'P'#0'l'#0'a'#0'y'#0'e'#0'r'#0' '#0'f'#0'o'#0'r'#0' '#0'L'#0'i'#0'n'#0'u'#0'x'#0#$D#0#$A#0#$D#0#$A#0
Ich wußte garnicht daß Delphi bei einer Stringkonvertierung das BOM (FE FF) entfernt, jedenfalls sollte danach am Anfang des Strings ein "?" stehen.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
Geändert von himitsu (15. Feb 2011 um 00:51 Uhr)
|