mkdir , PHP Ordner kommt mit UTF-8 nicht klar und erkennt keine Umlaute?
Hi und Guten Morgen,
kann mir hierbei jemand helfen?
Ich möchte Ordner/Verzeichnisse auf meinem Server stellten. Soweit klappt das auch. Leider kommt bei den Namen nur Müll raus, sowie Umlaute im Dateinamen sind.
So erstelle ich die Ordner
mkdir('./KundenDateien/'.$primaryKey."_".$vorname."_".$name.'')
Das sollte raus kommen:
fjsgjghdj_Hans_Glück
Das kommt raus
fjsgjghdj_Hans_Glück
Das hier habe ich versucht , bringt aber nichts
header('Content-Type: text/html; charset=utf-8');
Vielen Dank schon mal für eure Tipps
4 Antworten
Der Dateityp muss UTF-8 (ohne BOM-Zeichen) sein.
- notepad++ installieren
- deine PHP öffnen, Kodierung->Konvertiere zu UTF8
- dein Glück nochmal neu eintippen
- Speichern und neu ausführen - fertig.
Kodierungen sind meine Leidenschaft :)
BOM-Zeichen sind von mir und dir nicht lesbare Zeichen, die im Header einer jeden Textdatei geschrieben werden (können).
Hast du Notepad++ heruntergeladen und installiert? https://notepad-plus-plus.org/repository/7.x/7.6.4/npp.7.6.4.Installer.exe
Danach machst du einen rechtsklick auf deine PHP Datei und wählst "Edit with Notepad++", anschließend folgst du meinem ersten POST :)
Under Windows, PHP operates as a "non-Unicode aware program", then file names are converted back and forth from the UTF-16 used by the file system (Windows 2000 and later) to the selected "code page".
Option 1. Verwenden Sie die Funktionen urlencode() und urldecode():
Glück -> Gl%C3%BCck -> Glück
Option 2. Oder versuchen Sie es mit PHP 7.1 oder höher:
PHP 7.1 supports UTF-8 filenames on Windows disregarding the OEM codepage.
Hi,
das liegt daran, dass der Webserver vermutlich auf Linux läuft. Linux unterstützt keine Umlaute. Du hast keine andere Möglichkeit, als ä auf die Ersatzschreibung (ae) zu ändern.
nein, man kann seine Scripte auch von vornherein dem Ausgangsformat entsprechend anpassen, dann geht das wunderbar. HTMLENTITIES sollten in Deutschland sowieso in Zeiten von UTF-8 nicht nötig sein, sind sie btw auch nicht.
Das header bezieht sich auf den Browser, das mkdir auf das Filesystem deines Servers.
Als erstes fällt mir (vor dem ersten Kaffee ;) ein: probiere mal ein utf8_encode($name) bzw. utf8_decode($name) und prüfe das jeweilige Ergebnis.
oha... jetzt nochmals für mich ;-)
was meinst du mit BOM-Zeichen?
Kannst du mir vieleicht ein Beispiel zeigen?