Kodierungsproblem in mySQL

Gesperrt
matthiasschnueriger
Beiträge: 60
Registriert: Mo 28. Nov 2005, 16:01
Kontaktdaten:

Kodierungsproblem in mySQL

Beitrag von matthiasschnueriger » So 6. Mai 2012, 15:21

Meine Frage bezieht sich auf die Dateiverwaltung von Contenido. Wenn ich einer hochgeladenen Datei im Medienname Sonderzeichen verwende (z.B. einen Slash / ) wird dieser in der Datenbank als %3A abgespeichert. Wie kann ich den Slash oder andere Sonderzeichen 1:1 als solche abspeichern?

Noch ein paar Anmerkungen zu meiner Installation:
Version 4.8.15
PHP: 5.2.17
Verwendete Codierung: UTF-8

Spider IT
Beiträge: 1416
Registriert: Fr 3. Dez 2004, 10:15

Re: Kodierungsproblem in mySQL

Beitrag von Spider IT » So 6. Mai 2012, 16:57

Gegenfrage: Warum solltest du das machen wollen?
Wenn du Daten direkt aus der DB nutzen willst, dann musst du diese urldecode() en.

Gruß
René

kummer
Beiträge: 2423
Registriert: Do 6. Mai 2004, 09:17
Wohnort: Bern, Schweiz
Kontaktdaten:

Re: Kodierungsproblem in mySQL

Beitrag von kummer » Fr 18. Mai 2012, 16:40

matthiasschnueriger hat geschrieben:Wenn ich einer hochgeladenen Datei im Medienname Sonderzeichen verwende (z.B. einen Slash / ) wird dieser in der Datenbank als %3A abgespeichert. Wie kann ich den Slash oder andere Sonderzeichen 1:1 als solche abspeichern?
meines wissens zurzeit gar nicht. in deinem fall - mit ausgabe als utf-8 - ist das natürlich nicht wünschbar, weil eine transformation in html-entities nicht erfoderlich ist und ein url-encoding in diesem kontext gar keinen sinn ergbit. das url-encoding für die db (eine etwas sonderbare konstruktion) wurde ursprünglich verwendet, die encoding-probleme zu lösen, die aufgrund durch von contenido nicht festgelegter encodings der datenbank einerseits sowie insbesondere der verbindung andererseits entstehen können.

sofern alle url-decodierungen und -encodierungen von contenido gekapselt sind (was mir nicht bekannt ist), dann könntest du die db auf utf-8 aufsetzen und die verbindung auf utf-8 stellen und die methoden zur en- und decodierung so ändern, dass sie keine transformation mehr vornehmen. aber das halte ich - selbst wenn vielleicht möglich - für einen riskanten eingriff in den kern. ferner könntest du die methoden anpassen, welche die daten in die db schreiben und wieder lesen. auch hier sind allerdings ggf. seiteneffekte zu erwarten.

kurz gesagt: ich schätze, dass du das nicht ohne weiteres kannst.
aitsu.org :: schnell - flexibel - komfortabel :: Version 2.2.0 (since June 22, 2011) (jetzt mit dual license GPL/kommerziell)

Gesperrt