Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Zeichen im Zeichensatz ISO 8859-15 (https://www.delphipraxis.net/167671-zeichen-im-zeichensatz-iso-8859-15-a.html)

hoika 12. Apr 2012 10:16

Zeichen im Zeichensatz ISO 8859-15
 
Hallo,

die Aufgabe: prüfe ob ein String nur aus Zeichen des Zeichensatzes ISO 8859-15 besteht.
Lösung ?

Aus der Wikipedia-Tabelle (http://de.wikipedia.org/wiki/ISO_8859-15) werde ich nicht ganz schlau.
Wie bekomme ich die Tabelle in mein Programm?


Danke


Heiko

himitsu 12. Apr 2012 10:23

AW: Zeichen im Zeichensatz ISO 8859-15
 
Zitat:

Zitat von hoika (Beitrag 1161436)
Wie bekomme ich die Tabelle in mein Programm?

Du mußt alle Zeichen (vorallem die ab #128/#$80) im Unicode finden und deren Zeichencode rausbekommen.





In einem AnsiString oder String (bis D2007) unbekannten Formates?

garnicht.



In einem UnicodeString oder WideString?

Wenn es sich nicht um einen MultiByteString handelt (der 8859-15 sollte keiner sein),
dann einen AnsiString/RawByteString mit allen möglichen Zeichen befüllen und diesen nach Unicode umwandeln lassen.
Oder man man definiert sich eine Tabelle, mit allen passenden Unicodezeichen.

Nun hätte man eine Liste aller Zeichen und kann den gewünschten string dagegen prüfen, ob sich alle Zeichen in dieser Liste befinden.

p80286 12. Apr 2012 10:35

AW: Zeichen im Zeichensatz ISO 8859-15
 
Wenn ich mich da nicht vertue ist 8859-15 doch ein 8Bit-Zeichensatz, also ist da nichts mit Unicode und Konsorten!?

Ich halte die Prüfung zumindestens für schwierig, da Du das Auftauchen eines Zeichens im Kontext überprüfen mußt.

z.B. $31,$32,$A4 sollte 8859-15 sein.
während $31,$32,$A3 und $31,$32,$24 keinen Rückschluß auf den verwendeten Zeichensatz zulassen.

Gruß
K-H

himitsu 12. Apr 2012 10:51

AW: Zeichen im Zeichensatz ISO 8859-15
 
Zitat:

Zitat von p80286 (Beitrag 1161445)
Wenn ich mich da nicht vertue ist 8859-15 doch ein 8Bit-Zeichensatz, also ist da nichts mit Unicode und Konsorten!?

Deswegen.
Wenn du nur einen Ansistring vor dir hast, dann kann man daraus nicht erkennen welche Codierung darin verwendet wurde.
Bei MultiByte-Zeichensätzen, wie Unicode (wenn man gewisse vorallem asiatische Sprachen ausschließen kann), UTF-8 und Co., da könnte man eventuell sagen "Ja, dieses paar Bytes könnten dem Format entsprechen.", aber auch da ist keine 100%ige Aussage möglich.

Hat man aber einen UnicodeString vor sich (Unicode, UTF-8 usw.), dann könnte man sagen "Ja, dieser String enthält ausschließlich Daten/Zeichen, welche sich in dem gewünschten Format abspeichern ließen.", welche also in einen AnsiString mit der angegebenen CodePage (ISO 8859-15) reinpassen.

hoika 12. Apr 2012 11:11

AW: Zeichen im Zeichensatz ISO 8859-15
 
Hallo,

also ich bekomme den String über eine Textdatei, packe den in meine DB (FB, kein Unicode).
Manchmal sind da aber "Sonderzeichen" drin.
Den String muss ich wieder in eine Textdatei packen.
Der Empfänger der Datei moniert aber, dass die Datei ungültige Zeichen,
(nicht im ISO 8859-15 enthalten) hat.


Heiko

p80286 12. Apr 2012 11:15

AW: Zeichen im Zeichensatz ISO 8859-15
 
Zitat:

Zitat von hoika (Beitrag 1161461)
also ich bekomme den String über eine Textdatei, packe den in meine DB (FB, kein Unicode).
Manchmal sind da aber "Sonderzeichen" drin.
Den String muss ich wieder in eine Textdatei packen.
Der Empfänger der Datei moniert aber, dass die Datei ungültige Zeichen,
(nicht im ISO 8859-15 enthalten) hat.

und welche?
Bei diesem mehrfachen hinundhergeschiebe kann natürlich mal was schiefgehen, da solltest Du ggf auch auf den DB-Zeichensatz ein Auge werfen!

Gruß
K-H

Bummi 12. Apr 2012 11:15

AW: Zeichen im Zeichensatz ISO 8859-15
 
Wenn Du sonst nichts mit dem Text machen musst könntest Du Ihn in einem Binary-Blob per Stream ablegen/auslesen, damit vermeidest Du Konvertierungen durch Komponenten/Treiber/Datenbankeinstellungen


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:48 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