Umlaute und Bildnamen
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
bild
code
codierung
dank
datei
datenbank
grafik
http
idee
image
not
problem
quellcode
server
stehen
support
testsystem
umlaut
url
windows
-
Dieses verdammte Thema Umlaute. Eigentlich hatte ich damit nie wieder Probleme nach ein paar Tutorials. Aber jetzt komme ich gerade mal wieder nicht weiter.
Ich habe Bilder die Umlaute (und Leerzeichen) enthalten. Im Quellcode (Firefox) und Firebug stehen die src bzw. Hintergrund-Pfade korrekt da. Aber sie werden nicht angezeigt. Bei Rechtsklick "Hintergrundgrafik anzeigen" kommt folgendes Ergebnis. Auf dem Localhost läuft die Seite. Die Quellen hat Aunführungszeichen davor.
http://h4nni.lima-city.de/DASKOTZTMICHHIERAN.jpg
Vielleicht hat ja von euch noch einer eine Idee. Danke.
PS. Die Testseite liegt nicht bei lima-city.de (strato). -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
dann schreibt doch - als einfachste Lösung - einfach die Umlaute im Dateinahmen um, z.b. ü = ue
-
Danke, Gibt ein Uploadscript dahinter, also keine Lösung.
-
vielleicht hilft Dir dieses Tutorial ja weiter ...
-
na, dann musst du halt das Uploadscript so umschreiben,
damit es sowas kann (Umlaute, Sonderzeichen, Leerzeichen, etc. umschreiben)
bzw. es genügt wohl auch die Umlaute / Sonderzeichen richtig zu konvertieren
also UTF-8 / iso-8859-1 / .... je nachdem, wie Dein Dateisystem es haben will.
denn normalerweise funkionieren Bilder auch mit Umlaute (ä ö ü ...)
... wenn richtig codiert.
-
Danke nochmal, das kommt für mich aber nicht in Frage Bettler. Sowohl in der Datenbank sollen die Umlaute stehen, sowie auch die Dateinamen Umlaute beinhalten können.
Charset ist UTF-8, DB Tabelle etc. sind UTF-8, plusmysql_query("SET NAMES 'utf8'"); mysql_query("SET CHARACTER SET 'utf8'");
In der Datenbank stehen die Umlaute, um das Uploadscript geht es hier nicht. Die Ausgabe ist das Problem.
Beitrag zuletzt geändert: 19.1.2015 14:59:36 von h4nni -
dann einfach bei Upload den Dateinamen zum Speichern in UTF-8 wandeln
bzw. dabei aufpassen, dass es nicht "doppelt" codiert wird,
denn wenn Du einen UTF-8 String nochmal mit utf8_encode() behandelst = FEHLER
BSP:
header('Content-Type: text/html; charset=utf-8'); mb_internal_encoding("UTF-8"); mb_http_output("UTF-8"); // ------------------------------------------------------ function str_to_utf8 ($str) { if (mb_detect_encoding($str, 'UTF-8', true) === false) { $str = utf8_encode($str); } return $str; } // ------------------------------------------------------ $dateiname = str_to_utf8 ($dateiname); // ------------------------------------------------------
sollte Dein Datei-System eine andere Zeichen-Codierung haben,
dann eben in dieses Code-Format konvertieren (iconv .. etc)
-
Auf Deinem Testsystem läuft alles?
Basiert das Testsystem auf Windows?
Hast du das das Problem wirklich schon auf die Umlaute eingegrenzt oder könnte es sein, dass du ein Problem mit Gross- Kleinschreibung hast?
Was konkret wird ausgegeben?
Gruß Dunkeltuten -
dunkeltuten schrieb:
Auf Deinem Testsystem läuft alles?
Basiert das Testsystem auf Windows?
Hast du das das Problem wirklich schon auf die Umlaute eingegrenzt oder könnte es sein, dass du ein Problem mit Gross- Kleinschreibung hast?
Was konkret wird ausgegeben?
Gruß Dunkeltuten
Moin,
Windows und aktuelles xamp. Jau sind die Umlaute. Kein JPG-jpg oder sonstiges im Dateinamen. Musste es auf dem Testsystem auch erstmal zum laufen bekommen. Dort klappt die Ausgabe nun ganz normal per Datenbankausgabe. Bei Strato zeigt er das Bild nicht an, im Quellcode (vom Browser ausgegeben) zeigt er aber den richtigen Dateinamen an. Im Filezilla ebenfalls. Die einzige Spur die ich habe, ist das Bild aus meinem Ausgangspost. Ich kann das Bild also nicht mal so per Adresseingabe direkt öffnen. -
Moin,
Dein Hinweis ist wichtig:
"Ich kann das Bild also nicht mal so per Adresseingabe direkt öffnen."
Das muss zuerst mal klappen, bevor Du weiter in den PHP-Scripten wühlst.
Kommst Du per FTP (z.B. Filezilla) bis zur Grafik?
Gruss Dunkeltuten -
Ansonsten gibt es noch die Möglichkeit die Umlaute als Symbol im Quellcode zu schreiben:
ä/Ä = ä / Ä
ü/Ü = ü / Ü
ö/Ö = ö / Ö
-
daerror: danke, nein.
dunkeltuten: vollkommen richtig. Ja ich komme per FTP bis auf die Grafik und kann sie runterladen. Sie ist also nicht beschädigt.
OK kleines Update: Muss was mit der Codierung zu tun haben. Wenn ich die Browserzeile kopiere und einfüge bekomme ich folgendes
(Anstatt IMGP8866Blüten.jpg). Das kann sowohl der Link von der Seite als auch per Hand eingegeben werden. Ich schreibe mal dem Support. Mir gehen die Ideen aus.products/thumbs/IMGP8866Bl%C3%BCten.jpg
PS. Mein Browser hat damit nichts zu tun. -
ü = %C3%BC
das ist UTF-8, aber in hexadizimal!
(siehe auch: http://www.utf8-zeichentabelle.de/)
erzeuge mal lokal eine Testgrafik deren Dateiname Umlaute beinhaltet und lade die per FTP zu Deinem Webhoster hoch....
Sieht die dann auch so werkwürdig aus?
Gruss Dunkeltuten
Beitrag zuletzt geändert: 20.1.2015 13:30:34 von dunkeltuten -
Ja.
Nur noch mal zur Klarstellung: Wenn ich eine Datei hochlade, die öffne per Adresszeile, dann bekomme ich nicht die Datei angezeigt, sondern
In der Adresszeile steht es korrekt. Wenn ich die Adresszeile aber kopiere und wieder einfüge, bekomme ichNot Found - The requested URL /demo/images//products/IMGP8866Blüten.jpg was not found on this server.
aus der Zwischenablage.demo/images//products/IMGP8866Bl%C3%BCten.jpg
Vielleicht müssen wir auf den Support warten ...
Beitrag zuletzt geändert: 20.1.2015 13:40:26 von h4nni -
Probier mal
.IMGP8866Bl%fcten.jpg
Anscheinend interpretiert der Server die Anfrage nicht als UTF8, sondern als ISO 8859-1.
Aber eine Lösung des Problems habe ich auch nicht. -
Hi,
ich habe jetzt nicht alles hier genau gelesen, sind ja schon ein paar Beiträge mehr. Hast Du es schon mal mit rawurlencode probiert? (siehe hier)
Wenn ich Dein Problem richtig verstehe sollte es doch damit gehen. Falls schon mal erwähnt dann sorry, aber vielleicht hilft es ja weiter.
LG Marco
-
Ich hatte vor einiger Zeit mal ein ähnliches Problem, ohne PHP, es ging einfach um ein paar statische Seiten mit einigen Screenshots, z.B.
npage_ed_news.bpgs.de-Testseite für das Newssystem.jpg
Beim Direktaufruf der Grafik bekam ich dann eine 300er-Nachricht
Multiple Choices
The document name you requested (/img/npage_ed_news.bpgs.de-Testseite für das Newssystem.jpg) could not be found on this server. However, we found documents with names similar to the one you requested.
Available documents:
/img/npage_ed_news.bpgs.de-Testseite für das Newssystem.jpg (common basename)
Please consider informing the owner of the referring page about the broken link.
Man wird dann auf
/img/npage_ed_news.bpgs.de-Testseite%20f%fcr%20das%20Newssystem.jpg
verwiesen.
-
Probier mal
IMGP8866Bl%fcten.jpg
Anscheinend interpretiert der Server die Anfrage nicht als UTF8, sondern als ISO 8859-1.
Aber eine Lösung des Problems habe ich auch nicht.
Ha! Ja das geht. Aber da kann ich ja nichts ändern. Ich warte auf den Support. Melde mich.
Edit 2: rawurlencode() funktioniert nicht.
Nur mal so nebenbei: http://filzwerkstattcelle.de/images/products/IMGP8866Blüten.jpg
Beitrag zuletzt geändert: 21.1.2015 13:18:45 von h4nni -
Kannst du denn nicht die Namen der Grafikdateien nach dem Auslesen aus der Datenbank mit PHP rawurlencode() umwandeln?
Edit: Klappt bei Lima anscheinend auch nicht...
Beitrag zuletzt geändert: 21.1.2015 12:56:53 von mein-wunschname -
mein-wunschname schrieb:
Das war jetzt auch meine Idee. Was klappt da nicht?
Kannst du denn nicht die Namen der Grafikdateien nach dem Auslesen aus der Datenbank mit PHP rawurlencode() umwandeln?
Edit: Klappt bei Lima anscheinend auch nicht...
undurlencode('Blüten.jpg')
ergebenrawurlencode('Blüten.jpg')
, also den richtigen Dateinamen für die URL. Das müsste doch auch mit dem aus der DB gelesenen Dateinamen funktionieren.Bl%FCten.jpg
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage