Hallo zusammen,
hat irgendjemand eine Ahnung warum eine Variable ($fileName) welche als Parameter in eine Methode der Class xyz übergeben wird, sich nicht korrekt manipulieren lässt? Ich hätte gedacht es liegt an der Codierung, dies scheint aber nicht der Fall zu sein, in beide Beispiele ist utf-8:
Beispiel 1, Variable wird als Parameter übergeben:
Ausgabe:
Beispiel 2, string manuell hardcodiert:
Ausgabe:
Im head habe ich <meta charset="UTF-8"/>, im Editor auch CR UTF-8
Irgendeine Idee was ich hier tun kann?
hat irgendjemand eine Ahnung warum eine Variable ($fileName) welche als Parameter in eine Methode der Class xyz übergeben wird, sich nicht korrekt manipulieren lässt? Ich hätte gedacht es liegt an der Codierung, dies scheint aber nicht der Fall zu sein, in beide Beispiele ist utf-8:
Beispiel 1, Variable wird als Parameter übergeben:
PHP-Code:
$fileName = "Müller";
class MyClass {
protected function sanitizeFilename($fileName) {
return str_replace("ü", '_', $fileName);
}
$fileName = $this->sanitizeFilename($fileName);
echo "detect: ".mb_detect_encoding($fileName);
echo "output: ".$fileName;
...
}
HTML-Code:
detect: UTF-8 output: Müller (nicht erwartete Resultat)
PHP-Code:
$fileName = str_replace("ü", '_', "Müller");
echo "detect: ".mb_detect_encoding($fileName);
echo "output: ".$fileName;
HTML-Code:
detect: UTF-8 output: M_ller (erwartete Resultat)
Irgendeine Idee was ich hier tun kann?
Kommentar