Kann es sein, daß die Delphi-
IDE ein paar Macken beim
Unicode hat?
z.B. das Ereignisprotokoll:
Delphi-Quellcode:
var
S:
string;
A: AnsiString;
begin
S := '
TELENERG-ŁÓD';
if Ord(S[10]) <> 321
then // ging keim kopieren/speichern das Unicode kaputt
S := '
TELENERG-'#$0141'
ÓD';
OutputDebugString(PChar(S));
// müsste gehen, tut es aber nicht ... das Ł geht kaputt
OutputDebugStringW(PWideChar(S));
// ist ja das Selbe wie PChar (seit D2009)
OutputDebugStringA(PAnsiChar(UTF8Encode(S)));
OutputDebugStringA(PAnsiChar(AnsiString(S)));
// das geht natürlich nicht, da hierbei auf jeden Fall die Unicodeinfos verloren gehen
A := '
irgendwasÚ';
if Ord(A[10]) <> 218
then
A := '
irgendwas'#$DA;
OutputDebugStringA(PAnsiChar(A));
// hmmmm, die Ansiversion nimmt scheinbar ANSI und UTF8 an
R := UTF8Encode('
irgendwas ä');
SetCodePage(R, $FFFF, False);
R := R + AnsiString(#$DA);
OutputDebugStringA(PAnsiChar(R));
// sooo, ANSI wird als UTF8 interpretiert und wenn nicht nach Unicode konvertierbar, dann als ANSI
// aber dennoch blöd, daß Unicode-OutputDebugString nicht funktioniert ... es kann doch nicht sein, daß man alles selber machen muß :wall:
end;
und bei der Dateisuche hab ich auch schon immer Probleme.
- ist eine Datei schon in der
IDE geladen, dann funktioniert "Suchen in Dateien", ber ist die nicht geladen, dann kann man alles mit
Unicode vergessen
- - Unicodezeichen zu suchen geht nicht
- - und wenn man etwas "
ANSI" sucht, in Dateien die
Unicode enthalteb, dann geht es praktisch nur, wenn die Datei auch als UTF8 gespeichert ist, wobei in den Suchergebnissen die UTF8-Codes sichtbar sind.
Bei
S := 'alle ä suchen';
in einer Datei und diese Datei ist nicht in der
IDE geladen:
Wenn ich nach dem "ä" suche, dann wird die Datei nicht gefunden und bei der Suche nach "alle", dann steht im Suchergebnis
Test.pas(21): S := 'alle ä suchen';
.
Wisst ihr wie toll das ist, wenn man nach einem Unicodeproblem im Programm sucht, und dann der Debugger einen veräppelt?