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?
Comment