Forum: PC-Programmierung Warum werden in Dateinamen %-Zeichen verwendet


von Monika Clinton (Gast)


Lesenswert?

Hallo

Mir ist aufgefallen dass vielfach Dateien ein oder mehrere %-Zeichen im 
Dateinamen enthalten, besonders häufig JPG.

Warum macht man so was ?


Gruss

Monika Clinton

von unsichtbarer WM-Rahul (Gast)


Lesenswert?

Wenn nach dem % noch eine (Hex-)Zahl folgt, hast du es mit ASCII-Zeichen 
zutun, die Browsern scheinbar irgendwie Probleme bereiten.
Z.B.
%20 = " "
%26 = "&"

von Monika Clinton (Gast)


Lesenswert?

Aha ich habe schon bemerkt wenn ich bestimmte Seiten die ich 
abgespeichert habe die Bilder nicht mehr angezeigt werden. Aber man kann 
es ändern in dem man die Zeichen Rauslöscht und die Website anpasst.

von unsichtbarer WM-Rahul (Gast)


Lesenswert?

Linux mag z.B. Leerzeichen nicht gerne in Dateinamen (wurde mir 
zugetragen), weswegen man das vermeiden sollte.

von Rolf Magnus (Gast)


Lesenswert?

> Wenn nach dem % noch eine (Hex-)Zahl folgt, hast du es mit
> ASCII-Zeichen zutun, die Browsern scheinbar irgendwie Probleme
> bereiten.

Es sind halt Zeichen, die in URLs nicht vorkommen dürfen.

> Linux mag z.B. Leerzeichen nicht gerne in Dateinamen (wurde mir
> zugetragen), weswegen man das vermeiden sollte.

Das ist ziemlicher Blödsinn.

von Thomas B. (yahp) Benutzerseite


Lesenswert?

> Linux mag z.B. Leerzeichen nicht gerne in Dateinamen (wurde mir
> zugetragen), weswegen man das vermeiden sollte.

Solltest du schnell wieder vergessen, ist nämlich Quatsch.
Linux kann genau wie Windows Leerzeichen in Dateinamen ab. Ärgerlich ist 
es nur dann, wenn Dateinamen Kommandozeilenparameter werden sollen - 
Leerzeichen trennen ja typischerweise Parameter voneinander. Gilt für 
Windows aber auch. Der Punkt ist, dass verkorkste Dateinamen in 
Anführungszeichen eingeschlossen werden müssen bzw. dass die Leerzeichen 
"gequotet" werden müssen (gibts dafür eigentlich ein deutsches Wort?).

von Bartli (Gast)


Lesenswert?

> bzw. dass die Leerzeichen
> "gequotet" werden müssen (gibts dafür eigentlich ein deutsches Wort?).

Das (was du vermutlich meintest) hätt ich jetzt eher als Escaping 
bezeichnet, aber ein deutsches Wort kenn ich dafür trotzdem nicht :D

von DER Wibbel (Gast)


Lesenswert?

Hallo

"quoten" würde ich auf deutsch als "zitieren" bezeichnen. Uns "escaping" 
als "umschalten". Ich gestehe, so richtig passt das nicht.
Der Vorteil von deutsch als Sprache ist die halbwegs sinnvolle Grammatik 
und die flexiblen möglichkeiten der Wortbildung....die es eben 
erleichtern, Fremdworte in die Sprache zu integrieren.

Nicht ohne Grund liest sich technisches Englisch wie Deutsch mit 
englischen Vokabeln.....es sei denn, ein chinese hat es geschrieben. :-)

Nicht zum lachen.....ich finde immer häufiger Datenblätter, die noch nie 
von Japanisch, Koreanisch, Chinesich in Englisch übersetzt wurden, weil 
wir Westlinge langsam zur Minderheit werden. Das wird uns langfristig 
einen erheblichen Entwicklungsnachteil bringen, weil die Sprachbegabung 
bei uns Technickern ja eher unterentwickelt ist.

Euer Wibbel

von yalu (Gast)


Lesenswert?

> Linux mag z.B. Leerzeichen nicht gerne in Dateinamen (wurde mir
> zugetragen), weswegen man das vermeiden sollte.

In Linux und Unix sind in Dateinamen sämtliche Zeichen mit Ausnahme von 
'\0' (Stringendecode) und '/' (Verzeichnistrennzeichen) erlaubt. Auch 
nicht druckbare Zeichen und Steuerzeichen (z.B. ein Zeilenvorschub) sind 
möglich.

Wenn jemand bestimmte Zeichen in Dateinamen nicht mag, ist es der 
Benutzer. Der mag sie dann aber meist weder unter Linux noch Windows.

von ITler (Gast)


Lesenswert?

Durch %NUMMER werden spezielle Zeichen in URIs deklariert.
Da nur ASCII Standardzeichen in einer URL vorkommen können mußte das so 
gelöst werden, mit den neuen Konventionen und IP-V6 ist das anders 
gelöst.
Nachzulesen hier http://www.ietf.org/rfc/rfc2396.txt
Der Browser und Webserver übersetzen die Escape-Sequenzen selbständig, 
weswegen eine gespeicherte Seite wo die Bilder mit den Escape-Sequenzen 
gespeichert wurden nicht funtioniert.
Daher zum speichern entweder die Browserfunktion "Komplette Webseite 
speichern" oder einen Offline-Browser wie z.B. http://www.httrack.com/ 
nehmen.

von Wegstaben V. (wegstabenverbuchsler)


Lesenswert?

@ Bartli (Gast)

Escape (da sagte man auch schon mal "Fluchtzeichen" zu)
dienen dazu, die Funktion eines nachfolgenden Zeichens eine besondere 
Bedeutung zu geben. Wenn zum Beispiel * in bestimmten Stellen  als 
"Platzhalterzeichen" (Wildcard) interpretiert werden würde, wird durch 
\* mitgeteilt, daß tatsächlich der "Stern" als Zeichen gemeint ist, und 
nicht als Platzhalter für beliebige Zeichenfolgen interpretiert werden 
soll.

Quotes dienen dazu, eine "Klammer" um einen Text zu legen, um 
Sonderzeichen oder außergewöhnliche Symbole darin einzufangen. Bei Unix 
kann man da noch unterscheiden zwischen dem einfachen Hochkomma 'blub 
blub', der alles 1:1 übernimmt, und doppelten Hochkomma "bla bla", der 
versucht das was da drin steht gegebenenfalls zu substituieren.


von Jan M. (mueschel)


Lesenswert?

DER Wibbel wrote:
> "quoten" würde ich auf deutsch als "zitieren" bezeichnen. Uns "escaping"
> als "umschalten". Ich gestehe, so richtig passt das nicht.

Wie wäre es mit "maskieren"? Man maskiert das Zeichen, damit es nicht 
als Funktions-Zeichen erkannt wird.

von Rolf Magnus (Gast)


Lesenswert?

> Escape (da sagte man auch schon mal "Fluchtzeichen" zu)
> dienen dazu, die Funktion eines nachfolgenden Zeichens eine besondere
> Bedeutung zu geben.

Wie kommst du darauf, dass das nur für exakt ein Zeichen gelten sollte?
Würdest du sagen, "\n" ist in C eine Escape-Sequenz, "\xa" nicht? Ist \ 
dann nur manchmal das Escape-Zeichen?

Siehe auch http://de.wikipedia.org/wiki/Escape-Sequenz

von yalu (Gast)


Lesenswert?

>> Escape (da sagte man auch schon mal "Fluchtzeichen" zu)
>> dienen dazu, die Funktion eines nachfolgenden Zeichens eine besondere
>> Bedeutung zu geben.
>
> Wie kommst du darauf, dass das nur für exakt ein Zeichen gelten sollte?
> Würdest du sagen, "\n" ist in C eine Escape-Sequenz, "\xa" nicht? Ist \
> dann nur manchmal das Escape-Zeichen?

Natürlich wird nur einem nachfolgenden Zeichen eine neue Funktion 
gegeben:

Der '\' gibt dem 'x' die Funktion, selbst als Escape zu fungieren und 
dem nachfolgenden Zeichen die Funktion zu geben, die Hex-Darstellung 
eines Zeichencodes zu sein und zusätzlich als Escape für das hierauf 
folgende Zeichen zu fungieren, was diesem die Funktion gibt, als 
Hexadezimalzahl zum sechzehnfachen des Zeichencodes aus dem vorigen 
Schritt hinzuaddiert zu werden, falls es sich dabei um eine Hexziffer 
handelt, usw.

Ist alles nur ein Frage der Betrachtungsweise ;-)

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.