Страница 1 из 1

UTF локаль?

Добавлено: 2009-03-13 19:51:49
DeNn
Есть задача копировать файл загруженный по фтп средствами пхп. Но загвоздка заключается в том, что функция copy не видит его.

Код: Выделить всё

failed to open stream: No such file or directory in
Сама система видит файл "Привет.avi" как \360\322\311\327\305\324.mov
Часть кода, которая реализовывает копирование

Код: Выделить всё

<?php
if(copy('путь к файлу','пусть куда копировать'))
{
echo "Copy Done!";
}
?>
Подскажите, можно ли сделать, что б система распозновала нормально кирилицу, а лучше б utf-8, может какие то иероглифы загрузят. Ну или на крайний случай proftpd мог после загрузки файла переименовать его в дату к примеру.

Re: UTF локаль?

Добавлено: 2009-03-14 0:49:14
Гость
DeNn писал(а):Сама система видит файл "Привет.avi" как \360\322\311\327\305\324.mov
а php-скрипт в какой кодировке? В той же, что и имя файла?

Re: UTF локаль?

Добавлено: 2009-03-14 15:35:35
DeNn
Да кодировки пробывали разные. Весь прикол в том, что скрипт пытается искать файл по пути в конце которого кириллица, а в системе походу такого файла нету, потому как он видится как \360\322\311\327\305\324.mov

Кто то знает, можно ли при загрзке по фтп менять имя у файла?

Re: UTF локаль?

Добавлено: 2009-03-14 19:41:33
Гость
DeNn писал(а):Да кодировки пробывали разные. Весь прикол в том, что скрипт пытается искать файл по пути в конце которого кириллица, а в системе походу такого файла нету, потому как он видится как \360\322\311\327\305\324.mov
\360\322\311\327\305\324.mov - это не utf-8

Код: Выделить всё

$ echo '\360\322\311\327\305\324.mov' | unvis | enca -L ru
KOI8-R Cyrillic
  LF line terminators
$ echo '\360\322\311\327\305\324.mov' | unvis | iconv -f koi8-r
Привет.mov
Привет.mov в utf-8 будет выглядеть как

Код: Выделить всё

echo 'Привет.mov' | vis -o
\320\237\321\200\320\270\320\262\320\265\321\202.mov
еще раз спрашиваю, в какой кодировке скрипт, в какой имя файла и что выдает locale(1) от юзера по коим запускается скрипт?