AndrewPoison
Admiral
- Registriert
- Jan. 2005
- Beiträge
- 8.532
Titel klingt ja mal wieder suppi
Hab ein kleines Problem (welches durch einen "Trick" zwar nicht mehr existent ist, aber jederzeit wieder auftauchen könnte wo ich nicht so einfach damit umgehen könnte).
Und zwar zeigt mit PHP eine kleine Macke bzgl. deutschen Sonderzeichen auf. So habe ich ein Skript das Zeile für Zeile eine normale Textdatei durchgeht (diese enthält unter anderem auch die Deutschen Umlaute etc.) auf diese weise ausgibt:
So klappt das Wunderbar. Sonderzeichen werden durch HTMLEntities kodiert zum Browser geschickt und alles funzt.
Nun hatte ich eine Funktion geschrieben (pDesc, erwartet 2 Parameter), die abhängig der gewählten Sprache der Website (kann man auf der Site auswählen, klappt diesbezüglich auch alles schon) nur den englischen oder deutschen Part der Zeile ausgibt. Die Funktion als solche macht ihre Arbeit gut. Aber dann:
Rufe ich die Funktion so auf, werden Sonderzeichen als totaler Müll angezeigt. Erst dachte ich, dass meine Funktion dann wohl doch Fehler enthalten müsse und habe zu Debug-Zwecken jeden Code aus der pDesc-Funktion ausgeklammert und durch ein einfaches "echo $pD" ersetzt ($pD ist der erste Parameter, den die Funktion erwartet, wo der deutsche und englische Text drinnen stehen). Die Funktion macht also nun nichts anderes als den entgegengenommenen Wert (also die Texte) wieder auszuspucken.
Rufe ich wieder die Seite auf, stelle ich fest das der selbe Fehler mit den Sonderzeichen nachwievor vorhanden ist (auch mit Hard-Refreshes etc. probiert). Wie das? Hat PHP Probleme bei der Weiterreichung von Strings mit nicht-amerikanischen Zeichen?
"Gelöst" habe ich das Problem, indem ich meine Funktion eben erst zum Schluss aufrufe und HTMLEntities den Vortritt lasse - damit sind alle Sonderzeichen zum Zeitpunkt der Weitergabe an meine Funktion bereits in "normale" Zeichen umgewandelt, dass sieht dann im Aufruf so aus:
Doch wie eingangs erwähnt - dass kann einem dann ja wohl auch noch an anderer Stelle passieren, wo es womöglich nicht so einfach ist die Aufrufreihenfolge zu ändern. Also - woran liegts? *wanna know* ^^
Hab ein kleines Problem (welches durch einen "Trick" zwar nicht mehr existent ist, aber jederzeit wieder auftauchen könnte wo ich nicht so einfach damit umgehen könnte).
Und zwar zeigt mit PHP eine kleine Macke bzgl. deutschen Sonderzeichen auf. So habe ich ein Skript das Zeile für Zeile eine normale Textdatei durchgeht (diese enthält unter anderem auch die Deutschen Umlaute etc.) auf diese weise ausgibt:
PHP:
echo htmlentities(trim($descriptions[$img]));
Nun hatte ich eine Funktion geschrieben (pDesc, erwartet 2 Parameter), die abhängig der gewählten Sprache der Website (kann man auf der Site auswählen, klappt diesbezüglich auch alles schon) nur den englischen oder deutschen Part der Zeile ausgibt. Die Funktion als solche macht ihre Arbeit gut. Aber dann:
PHP:
echo htmlentities(pDesc(trim($descriptions[$img]),$lng));
Rufe ich wieder die Seite auf, stelle ich fest das der selbe Fehler mit den Sonderzeichen nachwievor vorhanden ist (auch mit Hard-Refreshes etc. probiert). Wie das? Hat PHP Probleme bei der Weiterreichung von Strings mit nicht-amerikanischen Zeichen?
"Gelöst" habe ich das Problem, indem ich meine Funktion eben erst zum Schluss aufrufe und HTMLEntities den Vortritt lasse - damit sind alle Sonderzeichen zum Zeitpunkt der Weitergabe an meine Funktion bereits in "normale" Zeichen umgewandelt, dass sieht dann im Aufruf so aus:
PHP:
echo pDesc(htmlentities(trim($descriptions[$img])),$lng);
Zuletzt bearbeitet: