Umwandlung - Unicode zu ASCII, BLOB

IR-Bastian

Mitglied
Hallo Gemeinde,

ich trete an euch mit einem relativ vagen Problem, denn wo genau der Fehler ist sehe ich noch nicht.

In unserer Datenbank sind Fotos als BLOBs hinterlegt(nicht meine Idee gewesen ;)), nun lese ich sie mit einer SQL aus und das Ergebniss in der sieht so aus:
PHP:
8t¦–XEÄ
ð_JÑ|eØÊ/TÅ®0ù¯ó£1XðíðpŸ8ãÖð'1ª@ˆ8^j÷§K§ì©P=@Ÿú‡¿`T)áGä^ÄÞ˜ÖPfìrç(GC=8»ç?‹T¼²¤÷ôœ1Ogu…J
K £JÝ8n1+CD"¹¯ÖE°-§¡0(Ä¡‡6K?=L:Dþfþ¿€s¬ð0ÀçPä]C·Y1ÄÅ¿(ßû‡Tâg@T$û?äþ0¯R@¥8NTÄhÄ“œã17D?i

Ich hätte aber lieber einen Hexadezimal code, als dieses... Gekröse

Wenn mir einer sagen könnte, WAS das eigentlich ist, wäre ich dankbar.

Ansonsten muss ich wissen, ob es einen SQL Befehl gibt der das da oben, was auch immer es ist, direkt als Hexadezimal anzeigt.
Das wäre echt super, wenn ihr mir helfen könntet! Bei Fragen anworte ich gerne.
 
Hallo Bastian,

was du siehst, sind einfach die Binärdaten Byte für Byte. Er versucht das ganze aber als String auszugeben. Das führt zu netten Steuerzeichen u.a. auch PINGs, wirrem Zeug usw. Bilder als BLOB zu hinterlegen, ist keine schlechte Idee, da ja eigentlich fast alle bekannten Bildformate binär abgespeichert werden.

bei Oracle könntest du bspw. in PL/SQL die SQL-Funktion RAWTOHEX() Funktion benutzen um dir die hexadezimale Repräsentation des BLOBs anzuschauen.

Bei anderen Sachen (nicht BLOB) kannst du auch

SQL:
select dump(<colname>) from table

benutzen, um dir Binärdaten anzuschauen.

Ansonsten bleibt wie immer eine Stored Procedure als Alternative.

Markus
 
Zuletzt bearbeitet:
Jo Markus, danke für die Antwort.

Leider habe ich eine Teradate Datenbank(also IBM, kein Oracle).
Und mit Dump funktioniert auch nichts.

Gibt es eine Alternative zu RATOHEX IBM-seitig?

BZW: Wie sähe denn dann eine stored prozedure dafür aus?
 
Zuletzt bearbeitet:
Dieses Zeichendurcheinander ist die Bytesequenz der Grafik abgebildet auf die jeweilige Ausgabekodierung (vermutlich ISO 8859-1). Wenn du diese Grafik als solche ausgeben möchtest, musst du den richtigen Inhaltstypen (bei PNG beispielsweise „image/png“) im HTTP-Header angeben. Denn nur damit verarbeitet der Client die Daten als PNG und nicht als Text.
 
Der Witz der ganzen sache ist: Die Ergebnisse der SQL werden als TXT Datei gespeichert und dann von da aus mit Exel oder mit PHP(in meinem Fall) weiterverarbeitet..

Das bedeutet ich kann nicht über den Header arbeiten. Als ersten Zwischenschritt um das Bild darzustellen benötige ich die entsprechende Spalten in Hexadezimal, damit funktioniert die Umwandlung "in das Bild" auch problemfrei.
 

Neue Beiträge

Zurück