AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Suche nach String mit 'decomposed' Character
Thema durchsuchen
Ansicht
Themen-Optionen

Suche nach String mit 'decomposed' Character

Ein Thema von Maekkelrajter · begonnen am 6. Okt 2024 · letzter Beitrag vom 7. Okt 2024
Antwort Antwort
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.919 Beiträge
 
Delphi 12 Athens
 
#1

AW: Suche nach String mit 'decomposed' Character

  Alt 6. Okt 2024, 22:51
Ich halte das eher für einen Bug bei der Zeichenkodierung. Ich kenne keine korrekte Möglichkeit, in der 6F 00 08 03 für ein ö steht. Das ist weder UTF-8 noch UTF-16. Das wird offenbar trotzdem richtig gelesen, aber ich verstehe nicht warum.

// EDIT:
08 03 steht für Trema.
Sebastian Jänicke
AppCentral

Geändert von jaenicke ( 7. Okt 2024 um 06:01 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Suche nach String mit 'decomposed' Character

  Alt 7. Okt 2024, 00:13
Ich wüsste auch nicht, warum Götterdämmerung eine Dekompositation ergeben sollte, vor allem nicht, da ö und ä das Selbe wären.

Delphi-Quellcode:
procedure TForm2.FormCreate(Sender: TObject);
var
  A, B, C, D: string;
begin
  A := '';
  B := 'xo'#$0308; // o mit compose-¨
  C := 'xo'#$00A8; // o mit ¨
  if A = B then
    ShowMessage('aa'); // nö
  if AnsiSameStr(A, B) then // CompareString mit LOCALE_USER_DEFAULT
    ShowMessage('bb'); // jo
  if AnsiSameStr(A, C) then
    ShowMessage('cc'); // nö

  if StrStr(PChar(A), PChar(B)) <> nil then // PChar-Variante des Pos
    ShowMessage('dd'); // jo

  SetLength(D, 5);
  SetLength(D, NormalizeString(NormalizationC, PChar(B), 4, PChar(D), 5) - 1);
  if A = D then
    ShowMessage('ee' + sLineBreak + A.Length.ToString + ' ' + B.Length.ToString + ' ' + D.Length.ToString + ' '); // jo
end;
MSDN-Library durchsuchenCompareString oder MSDN-Library durchsuchenCompareStringEx,
im Gegensatz zu MSDN-Library durchsuchenCompareStringOrdinal.

MSDN-Library durchsuchenStrStr
MSDN-Library durchsuchenFindNLSString
MSDN-Library durchsuchenFindNLSStringEx

MSDN-Library durchsuchenNormalizeString
MSDN-Library durchsuchenFoldString
MAP_PRECOMPOSED = $20; { convert to precomposed chars }
MAP_COMPOSITE = $40; { convert to composite chars }

MSDN-Library durchsuchenWideCharToMultiByte
WC_COMPOSITECHECK = $200; { convert composite to precomposed }

MSDN-Library durchsuchenMultiByteToWideChar
MB_PRECOMPOSED = 1; { use precomposed chars }
MB_COMPOSITE = 2; { use composite chars }
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu ( 7. Okt 2024 um 09:24 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.919 Beiträge
 
Delphi 12 Athens
 
#3

AW: Suche nach String mit 'decomposed' Character

  Alt 7. Okt 2024, 06:00
Ich wüsste auch nicht, warum Götterdämmerung eine Dekompositation ergeben sollte, vor allem nicht, da ö und ä das Selbe wären.
Das stimmt nicht. Das ist quasi a und o gefolgt von dem Trema (Zweipunktakzent), in der Datei gespeichert als Big-Endian (0x0803 in UTF-16). Nur dieser Akzent ist identisch.

Ich sehe allerdings für eine solche Zweiteilung keinen Grund bei der Zeichenkodierung.
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
Benutzerbild von Gausi
Gausi

Registriert seit: 17. Jul 2005
902 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Suche nach String mit 'decomposed' Character

  Alt 7. Okt 2024, 08:01
Ich sehe allerdings für eine solche Zweiteilung keinen Grund bei der Zeichenkodierung.
Ist auch nicht mein Spezialgebiet, aber deswegen scheint es die Normalisierung (Unicode) zu geben. Der letzte Beitrag von himitsu dürfte auch in diese Richtung gehen, wenn ich das richtig sehe.
Being smart will count for nothing if you don't make the world better. You have to use your smarts to count for something, to serve life, not death.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Suche nach String mit 'decomposed' Character

  Alt 7. Okt 2024, 08:41
Das ist quasi a und o gefolgt
Ich bin mir sicher, das sah gestern noch aus, wie zwei O.

Irgendwer hat da heimlich 3 Bit geändert.

Ich sehe allerdings für eine solche Zweiteilung keinen Grund bei der Zeichenkodierung.
De Wiki sagt es so schön.

Zitat:
Precomposed characters are the legacy solution for representing many special letters in various character sets. In Unicode, they are included primarily to aid computer systems with incomplete Unicode support, where equivalent decomposed characters may render incorrectly.




So einen ähnlichen Mist gibt es inzwischen auch für Smileys ... Geschlechtsteil und Rasse (Hautfarbe)
Wobei man es hier unvollständig lassen und nicht alles x-fach nochmal aufnehmen wollte.

http://www.unicode.org/L2/L2016/1618...-sequences.pdf
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu ( 7. Okt 2024 um 08:52 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 06:43 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz