AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Die Delphi-IDE Sonderzeichen in Lokale Variablen Fenster bei Unicode
Thema durchsuchen
Ansicht
Themen-Optionen

Sonderzeichen in Lokale Variablen Fenster bei Unicode

Ein Thema von colcok · begonnen am 26. Mai 2021 · letzter Beitrag vom 28. Mai 2021
Antwort Antwort
colcok

Registriert seit: 15. Mär 2021
11 Beiträge
 
#1

Sonderzeichen in Lokale Variablen Fenster bei Unicode

  Alt 26. Mai 2021, 13:43
Es gibt beim Debuggen ein Phänomen beim Anzeigen eines Unicodezeichens (Umlaut), das ich nicht nachvollziehen kann:
Code:
wchar_t cd = L'ä';
Dargestellt wird es im C++ Builder 10.3 unter Lokale Variablen wie folgt beim Debuggen:
Code:
cd L'ä꓃' 228U (0x00E4)
Warum wird hinter dem 'ä' noch ein 'Yi Radical Che'-Zeichen (꓃ (U+A4C3)) angezeigt?
Ich weiß, dass das 'ä' aus 2 Bytes zusammengesetzt ist, aber warum diese Darstellung?
Bei den anderen Umlauten wird auch ein anderes Zeichen daneben noch angezeigt.

Das 'a' zum Beispiel wird ja auch wie folgt angezeigt:
Code:
cd L'a' 97U (0x0061)
Ist das ein Bug?
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Sonderzeichen in Lokale Variablen Fenster bei Unicode

  Alt 26. Mai 2021, 15:10
228U (0x00E4) das Ä ... also 2 Byte = ein WideChar

Könnte es sein, dass hier kein abschließendes #0 enthalten ist?
Und zufällig liegen "irgendwelche" 2 Bytes gefolgt von 2 Nullen dahinter im Speicher?



'꓃' sind 8 Chars im String (HTML-Kodierung).
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
colcok

Registriert seit: 15. Mär 2021
11 Beiträge
 
#3

AW: Sonderzeichen in Lokale Variablen Fenster bei Unicode

  Alt 27. Mai 2021, 08:30
Ich hänge am Besten nochmal einen Screenshot an, da sieht man es besser, es wird als
'ä꓃' angezeigt.
Wie auch immer, das scheint ein Bug zu sein, oder? Eine abschließende '\0' müsste
ja nicht vorhanden sein, da ich nur mit einem wchar_t arbeite, nicht mit einem String.
Miniaturansicht angehängter Grafiken
radstudiolocvar.png  

Geändert von colcok (27. Mai 2021 um 08:53 Uhr)
  Mit Zitat antworten Zitat
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
2.942 Beiträge
 
Delphi 12 Athens
 
#4

AW: Sonderzeichen in Lokale Variablen Fenster bei Unicode

  Alt 27. Mai 2021, 21:05
Moment! Ist nicht ein wchar_t ein Zeiger auf einen null terminieren String?
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Sonderzeichen in Lokale Variablen Fenster bei Unicode

  Alt 28. Mai 2021, 00:25
Jo, drum steht da auch ein L vor'm "wide-character literal"


Delphi-Strings (LongStrings) nutzen sie zwar selber nicht, aber sie haben dennoch hinten implizit zwei #0 dran, als Kompatibilität, um "einfach" nach PChar casten zu können.
In C/C++ muß man das öfters selber machen (abgesehn von z.B. dem BSTR aka WideString in Delphi),
genauso wie in Delphi, wenn man dort manuell mit PChar und CharArrays rumspielt (ohne die Automatiken zu verwenden).
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu (28. Mai 2021 um 00:34 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort


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 04:17 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz