Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > de.comp.lang.vbclassic > #7635
| 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> |
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 | Next — Previous in thread | Next in thread | Find similar | Unroll 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