UTF8 имена файлов в PHP и различные кодировки Unicode

У меня есть файл, содержащий символы Unicode на сервере под управлением Linux. Если я подключаюсь к серверу по SSH и использую табуляцию для перехода к файлу / папке, содержащей символы Юникода, у меня нет проблем с доступом к файлу / папке. Проблема возникает, когда я пытаюсь получить доступ к файлу через PHP (функция, с которой я обращался к файловой системе, былаstat). Если я выведу путь, сгенерированный PHP-скриптом, в браузер и вставлю его в терминал, файл также, похоже, будет существовать (хотя при взгляде на терминал пути к файлам точно такие же).

Я установил PHP, чтобы использовать UTF8 в качестве кодировки по умолчанию через php_ini, а также установитьmb_internal_encoding, Я проверил кодировку строк PHP-пути к файлу, и она выглядит как UTF8, как и должно быть. Порывшись побольше я решилhexdump & # xE9; символ завершения терминала и сравните его сhexdump из "обычного" & # XE9; символ, созданный с помощью сценария PHP или путем ручного ввода символа с клавиатуры (опция + e + e для os x). Вот результат:

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

& # XE9; символ, разрешающий правильную ссылку на файл в терминале, является 3-байтовым. Я не уверен, куда идти дальше, какую кодировку мне следует использовать в PHP? Должен ли я преобразовывать путь в другую кодировку черезiconv или жеmb_convert_encoding?

Ответы на вопрос(3)

Ваш ответ на вопрос