За последние 24 часа нас посетили 32522 программиста и 1755 роботов. Сейчас ищут 887 программистов ...

Имя сохраняемого файла -> почему utf-8 бьется?

Тема в разделе "Прочие вопросы по PHP", создана пользователем GydruS, 9 дек 2010.

  1. GydruS

    GydruS Активный пользователь

    С нами с:
    9 дек 2010
    Сообщения:
    12
    Симпатии:
    0
    Адрес:
    77
    Здравствуйте, профессионалы!

    Подскажите, как заставить php сохранять "русский_имадж.jpg", именно с таким именем, а не с "СЂСѓСЃСЃРєРёР№_имадж.jpg"?

    HTML-страница в utf-8. Все ее заголовки соответствующие. у тега Form стоит аттрибут accept-charset="utf-8". Так вот, когда отправляю через эту форму "русский_имадж.jpg", то в БД он попадает корректно - с таким же именем, а вот на жесткий диск сохраняется в однобайтовой последовательности... Сервер Win 2k3, php 5.3, apache 2.2
    Сохранение происходит, грубо говоря так:
    PHP:
    1. move_uploaded_file($_FILES[$ImagesKeyName]['tmp_name'][$i], $path.'/'.$_FILES[$ImagesKeyName]['name'][$i]);

    Как быть? Что делать?
     
  2. tommyangelo

    tommyangelo Старожил

    С нами с:
    6 дек 2009
    Сообщения:
    2.549
    Симпатии:
    0
    Адрес:
    Мариуполь
    GydruS

    Как вариант - чем ты смотришь имя файла? ФАРом?

    Может надо в своем редакторе поставить кодировку UTF-8?
     
  3. GydruS

    GydruS Активный пользователь

    С нами с:
    9 дек 2010
    Сообщения:
    12
    Симпатии:
    0
    Адрес:
    77
    tommyangelo, нет, смотрю проводником..
    Более того, после такого аплоада в браузере вот такая строка запроса "http://server/files/русский_имадж.jpg" дает 404.
    А строка "http://server/files/СЂСѓСЃСЃРєРёР№_имадж.jpg" показывает картинку...
     
  4. GydruS

    GydruS Активный пользователь

    С нами с:
    9 дек 2010
    Сообщения:
    12
    Симпатии:
    0
    Адрес:
    77
    Короче, временно я решил проблему так:
    PHP:
    1. $uploadfile = $path.'/'.$_FILES[$ImagesKeyName]['name'][$i];
    2. $uploadfileWinName = iconv('utf-8','utf-16',$uploadfile);
    3. if(move_uploaded_file($_FILES[$ImagesKeyName]['tmp_name'][$i], $uploadfileWinName))