UTF8-Dateinamen in PHP und verschiedenen Unicode-Codierungen

Ich habe eine Datei mit Unicode-Zeichen auf einem Server unter Linux. Wenn ich eine SSH-Verbindung zum Server herstelle und die Tabulator-Vervollständigung verwende, um zu der Datei / dem Ordner mit den Unicode-Zeichen zu navigieren, kann ich problemlos auf die Datei / den Ordner zugreifen. Das Problem tritt auf, wenn ich versuche, über PHP auf die Datei zuzugreifen (die Funktion, von der aus ich auf das Dateisystem zugegriffen habe, warstat). Wenn ich den vom PHP-Skript generierten Pfad an den Browser ausgebe und in das Terminal einfüge, scheint die Datei ebenfalls vorhanden zu sein (auch wenn ich auf das Terminal schaue, sind die Dateipfade genau gleich).

Ich habe PHP so eingestellt, dass UTF8 als Standardkodierung über php_ini verwendet wirdmb_internal_encoding. Ich habe die PHP-Dateipfad-String-Codierung überprüft und sie wird wie vorgesehen als UTF8 ausgegeben. Ich stocherte ein bisschen mehr herum und beschloss eshexdump das é-Zeichen, mit dem die Registerkarte des Terminals vervollständigt und mit dem verglichen wirdhexdump des vom PHP-Skript erstellten 'normalen' Zeichens oder durch manuelle Eingabe des Zeichens über die Tastatur (Option + e + e auf os x). Hier ist das Ergebnis:

echo -n é | hexdump
0000000 cc65 0081                              
0000003
echo -n é | hexdump
0000000 a9c3                                   
0000002

Das Zeichen é, das eine korrekte Dateireferenz im Terminal ermöglicht, ist das 3-Byte-Zeichen. Ich bin nicht sicher, wohin ich von hier aus gehen soll. Welche Codierung soll ich in PHP verwenden? Sollte ich den Pfad in eine andere Kodierung über konvertieren?iconv odermb_convert_encoding?

Antworten auf die Frage(3)

Ihre Antwort auf die Frage