Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > de.comp.lang.vbclassic > #7635

Re: Unicode-Sequenzen in Strings erkennen

From Klaus Ketelaer <usenet@ketelaer.de>
Newsgroups de.comp.lang.vbclassic
Subject Re: Unicode-Sequenzen in Strings erkennen
Date 2024-03-14 16:58 +0100
Message-ID <usv6qh$1c0di$1@solani.org> (permalink)
References <ussie2$1amq6$1@solani.org> <ussuv5$13sdr$1@dont-email.me> <usth3d$1ar25$1@solani.org> <usult9$1imai$1@dont-email.me>

Show all headers | View raw


Am 14.03.2024 um 12:09 schrieb Ulrich Möller:
> Hallo Klaus,
Hallo Ulrich,
> ich habe mir die Seite mal angesehen und sie ist in UFT-8 kodiert.
> 
> Für diese Aufgaben habe ich normalerweise die beiden Bibliotheken MSHTML 
> und MSXML verwendet, welche mit UTF-8 kodierte Seiten umgehen können.
> Probleme mit Unicode habe ich noch nicht bekommen. Bei UTF-8 können 
> Zeichen mehrere Bytes groß sein, bei Unicode-16 sind es immer 2 Byte.
> Ein freistehendes Akut wird durch U+00A0 U+00B0 dargestellt, ansonsten 
> gilt die Reihenfolge, zuerst Basisbuchstabe und dann diakritischen 
> Zeichen. Das sollte in einem Bytearray eigentlich leicht zu finden sein.
> 
> Näheres: https://de.wikipedia.org/wiki/Diakritisches_Zeichen#Unicode
> 
Der überwiegende Teil aller Namen besteht aus ASCII-Zeichen im
Bereich 48 bis 57, 97 bis 122. Deutsche Namen sind ab und zu im
ANSI-Format, und enthalten ggf. die Zeichen 228, 246, 252 und 223.
(Alles in Kleinschrift)

Wenn dies nicht zutrifft, dann werden die Namen auf häufig
enthaltene HTML-Codierungen geparst und entsprechend gesäubert.

Ja, und danach, muss ich wissen, ob Unicode codierte Zeichen
enthalten sind, sodass ich meine Funktion UTF8_To_Ansi() aufrufen
muss, weil halt die Seiten meist in UTF8 codiert wurden. (Wenn
ich mir Namen aus Russland "angle", muss ich andere Codepages
verwenden.)

Die bisherige Konvertierung von über 200.000 Namen hat ergeben,
dass die codierten Zeichen stets mit &HC3 bis &HC5 beginnen, was
den von mir erwähnten Wertne 195-198 entspricht. Danach folgt ein
weiteres Zeichen, das dann zusammen mit dem ersten Zeichen das
Unicode-Zeichen bildet.
Und nur dann darf ich den String in UTF8 wandeln. Wenn ich den
String ungeachtet dessen konvertiere, dann zerstöre ich alle evtl.
enthaltenen ANSI-Zeichen, incl. Deutscher Umlaute.

Daher muss ich prüfen, ob solche Zeichen enthalten sind, was ich
mit der geposteten Function tue, die ich jedoch als recht
dilettantisch empfinde.

Bis hierhin interessieren mich Akzente nicht die Bohne.

Erst wenn der Name gesäubert oder konvertiert wurde, wird der
gesamte Name durch eine Übersetzungstabelle gejagt, welche alle
Akzente entfernt.

Danach extrahiere ich die BASE64-Bilder und speichere sie unter
dem gesäuberten Namen ab, oder wenn ich Glück habe, liegt das
Bild als Datei vor, und ich muss er nur umbenennen und verschieben.
Der Name wandert dann in die Datenbank, sofern er dort nicht
vorhanden ist.

Mein Frage bezog sich eigentlich nur darauf, ob es eine Funktion
gibt, die sicher und effizient erkennt, ob ein String Unicode-
Zeichen enthält. Das ist alles;-)

Gruß Klaus

Back to de.comp.lang.vbclassic | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

Unicode-Sequenzen in Strings erkennen Klaus Ketelaer <usenet@ketelaer.de> - 2024-03-13 16:57 +0100
  Re: Unicode-Sequenzen in Strings erkennen Ulrich Möller <knobbi38@arcor.de> - 2024-03-13 20:31 +0100
    Re: Unicode-Sequenzen in Strings erkennen Klaus Ketelaer <usenet@ketelaer.de> - 2024-03-14 01:41 +0100
      Re: Unicode-Sequenzen in Strings erkennen Ulrich Möller <knobbi38@arcor.de> - 2024-03-14 12:09 +0100
        Re: Unicode-Sequenzen in Strings erkennen Klaus Ketelaer <usenet@ketelaer.de> - 2024-03-14 16:58 +0100
          Re: Unicode-Sequenzen in Strings erkennen Wolfgang  Εnzinger <we_usenet@nurfuerspam.de> - 2024-04-16 00:05 +0200
            Re: Unicode-Sequenzen in Strings erkennen Wolfgang  Εnzinger <we_usenet@nurfuerspam.de> - 2024-04-16 00:33 +0200

csiph-web