SOAP daten für mysql vorbereiten

Drogenfahnder

Well-known member
ID: 167222
L
28 April 2006
333
6
Hallo zusammen,
wie bereitet ihr Die Daten für die mysql vor die Ihr von Soap o.ä. Schnittstellen bekommt.

Und wie formatiert ihr die Daten wenn Ihr diese wieder ausgibt.

Es geht insbesondere um Sonderzeichen.

Vielen Dank schon einmal für eure Vorschläge.

Grüße
 
du brauchst da keine wirkliche Sonderbehandlung, SOAP definiert die Datentypen, die stimmen also schonmal.

Du musst also nur wie immer die Daten prüfen ob sie stimmen (Wertebereich) und ob die Kodierung stimmt (UTF-8, iso-8859-1 ...)

Kenne mich mit SOAP nicht so aus, aber die Sonderzeichen bekommt man dann im Griff, wenn man nur UTF-8 benutzt, heißt: MySQL-Tabellen, MySQL-Verbindung und die Ausgabe auf UTF-8 stellen.
tut mir leid, liro, aber wie in deinem anderen Thread stimmt das schonwieder nicht.
iso-8859-1 ist genauso in Ordnung.


Ich habe gerade nochmal in der SOAP-Spezifikation nachgesehen, der Zeichensatz steht im HTTP-Header ;)
 
Was stimmt, bitteschön, daran nicht?
Wieso soll man ISO-DingsBums benutzten wenn es UFT-8, womit du eben (so ziemlich) alle Sonderzeichen darstellen kannst, gibt?
einfach deine Aussage, du stellst es so hin, als ob man UTF-8 nehmen muss.
Da iso-8859-1 der westeuropäische Zeichensätze, also unsere Zeichen, ist der ebenso in Ordnung.
Das Forum hier ist auch iso-8859-1 und Sonderzeichen funzen, gell?
Nebenbei scheinen deine Informationen zu UTF-8 nur rudimentär zu sein, du kannst damit alle Zeichen darstellen.
 
Nebenbei scheinen deine Informationen zu UTF-8 nur rudimentär zu sein, du kannst damit alle Zeichen darstellen.
Du behauptest also damit, dass UTF-8 alle Zeichen darstellen kann... schon mal an die etlichen Tausenden der Chinesischen Schriftzeichen gedacht, die sowieso keine Sau kennt, aber das tut ja nichts zur Sache?:ugly:
 
Zuletzt bearbeitet:
also die Daten von SOAP sind alle UTF-8
dies möchte ich in der db speichern
anschließend auf einer anderen Seite wieder ausgeben jedoch als iso-8859-1

Mit welchen Befehlen bekomme ich das hin?
Bekomme das leider nicht hin.
 
einfach deine Aussage, du stellst es so hin, als ob man UTF-8 nehmen muss.
Da iso-8859-1 der westeuropäische Zeichensätze, also unsere Zeichen, ist der ebenso in Ordnung.
Latin 1 kann nicht alle westeuropäischen Zeichen darstellen. Das €-Zeichen fehlt nämlich (geht hier nur mittels HTML-Entity). Daher, wenn ISO, dann Latin 15.

Das Forum hier ist auch iso-8859-1 und Sonderzeichen funzen, gell?
Nebenbei scheinen deine Informationen zu UTF-8 nur rudimentär zu sein, du kannst damit alle Zeichen darstellen.
Nein, 100pro nicht. Aber für uns natürlich in der Regel eher unbedeutend.
https://de.wikipedia.org/wiki/Standard_Compression_Scheme_for_Unicode#Kritik
https://www.typeforum.de/modules.php?op=modload&name=News&file=article&sid=187
 
ja, war beides mal doof ausgedrückt:

Latin 1 kann nicht alle westeuropäischen Zeichen darstellen. Das €-Zeichen fehlt nämlich (geht hier nur mittels HTML-Entity). Daher, wenn ISO, dann Latin 15.
richtig, das €-Zeichen fehlt, weil zu dem Zeitpunkt der Euro noch nicht existierte, deswegen bin ich schon davon ausgegangen, dass man das €-Zeichen dann durch sein HTML-Äquivalent ersetzt.

richtig, es fehlt ein Teil (!) - nicht alle - der chinesischen Zeichen, was uns nicht betrifft. Aber wenn man seine Seite für chinesische Zeichen auslegt, wird man sowieso einen chinesischen Zeichensatz wählen, da dann weit weniger Bits pro Buchstabe benötigt werden.

also die Daten von SOAP sind alle UTF-8
dies möchte ich in der db speichern
anschließend auf einer anderen Seite wieder ausgeben jedoch als iso-8859-1
utf8_decode()



Und es gibt einen guten Grund warum ich jedem iso-8859-1 ans Herz lege:
UTF-8 ist sehr schnell kaputt gemacht, wenn man eine externe Library verwendet, die wie das meiste in PHP rein auf iso-8859-1 beruht.
Ich musste schon zig Anwendungen reparieren, wo dann an irgendeiner Stelle das UTF-8 kaputt gegangen ist, denn das passiert sehr schnell, wenn man darin nicht erfahren ist.
Einmal keine UTF-8-String-Funktion genutzt und das wars dann.
 
Nur mal um auf das hauptthema zurueckzukommen.
also die Daten von SOAP sind alle UTF-8
dies möchte ich in der db speichern
anschließend auf einer anderen Seite wieder ausgeben jedoch als iso-8859-1

Mit welchen Befehlen bekomme ich das hin?
Bekomme das leider nicht hin.

Du musst erstmal entscheiden ob du die DB als UTF-8 oder ISO-8859-1 speichern willst und dann entweder vor oder nach der DB mit iconf konvertieren.

Edith meint: du kannst vor der konvertierung noch html_entities drueberlassen damit du moeglichst viele (auch nicht ISO-8859-1) dann noch drinbleiben.
 
Zuletzt bearbeitet:
da alles uf-8 ist habe ich es mit utf8_decode() gewandelt anschließend mit htmlentities() noch die Zeichen gewandelt. Funktioniert einwandfrei.

Danke ice-breaker

Grüße
 
da alles uf-8 ist habe ich es mit utf8_decode() gewandelt anschließend mit htmlentities() noch die Zeichen gewandelt. Funktioniert einwandfrei.

Danke ice-breaker

Grüße

Das ist die falsche Reihenfolge. Du machst durch das utf8_decode die Zeichen kaputt, die nicht in ISO-8859-1 enthalten sind (bspw. das €-Zeichen). Mache also erst das htmlentities mit Angabe des Zeichensatzes(!!!, 3. Parameter) und erst dann die Umwandlung.
 
Das ist die falsche Reihenfolge. Du machst durch das utf8_decode die Zeichen kaputt, die nicht in ISO-8859-1 enthalten sind (bspw. das €-Zeichen). Mache also erst das htmlentities mit Angabe des Zeichensatzes(!!!, 3. Parameter) und erst dann die Umwandlung.

Solche Probleme hat man nicht, wenn man von Anfang an nur auf UTF-8 setzt.