mkdir , PHP Ordner kommt mit UTF-8 nicht klar und erkennt keine Umlaute?

4 Antworten

Vom Beitragsersteller als hilfreich ausgezeichnet

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 :)

Woher ich das weiß:Hobby

MrSchockiert 
Beitragsersteller
 24.03.2019, 11:00

oha... jetzt nochmals für mich ;-)

was meinst du mit BOM-Zeichen?

Kannst du mir vieleicht ein Beispiel zeigen?

https://stackoverflow.com/questions/1525830/how-do-i-use-filesystem-functions-in-php-using-utf-8-strings

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.
Woher ich das weiß:Berufserfahrung – Ich erstelle Wordpress-Themes, Plugins und Online-calculator

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.

Woher ich das weiß:Berufserfahrung

bk2507  24.03.2019, 10:46

das stimmt nicht...

derFabi95  24.03.2019, 10:52
@bk2507

Nicht komplett, das stimmt. Aber es ist der Einfachste Weg, es zu beheben. Die andere Option wäre das schreiben in Anführungszeichen, dann ginge es.

bk2507  24.03.2019, 10:58
@derFabi95

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.