Einzelnen Beitrag anzeigen

Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.126 Beiträge
 
Delphi 10.3 Rio
 
#11

AW: Unicodezeichen mit mehr als einem wideChar?

  Alt 19. Mai 2021, 11:54
Das konkrete Problem habe ich noch nicht verstanden. Angenommen du hast den String "Dånsk". Also "D" + (char)0x61 + (char)0x30A + "nsk" Dann liefert "Dånsk".StartsWith("Da") auch false , obwohl die ersten beiden Character ja übereinstimmen.
OK, StartWith kann das also, gut zu wissen - oder auch nicht. Kommt darauf an, welche Funktionalität man erwartet.

Eine Routine die Feststellen muss, ob es sich um Kosit, Latin 1.1 oder Latin 1.2 handelt sieht dann so aus...

Delphi-Quellcode:
For i:=1 to length(S) do
  begin
    if Dic3Char.TryGetValue(S[i],Target) then
      begin
        if length(S) > I+2 then
          begin
            if (s[i+1] = Target.Char2) and (S[i+2] = Target.Char3) then
              Exit(IsLatin1_2);
          end;
      end else begin
    if Dic2Char.TryGetValue(S[i],Target) then
      begin
        if length(S) > I+1 then
          begin
            if (s[i+1] = Target.Char2) then
              begin
                if IsLatin1_1(S[i],s[i+1]
                  then Exit(IsLatin1_1)
                  else Exit(IsLatin1_2);
              end;
          end;
      end else begin
        if not Dic1Char.TryGetValue[S[i],Target) then
        Exit(NonKoSIT);
      end;
    end;
  end;
  Mit Zitat antworten Zitat