Модераторы: Aliance, skyboy, MoLeX, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> очередная проблема с кодировкой 
:(
    Опции темы
zebulun
Дата 8.10.2012, 13:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 55
Регистрация: 1.9.2011

Репутация: нет
Всего: нет



всё у меня в utf8, данные получаю постом, кирилица возможна в трех полях : name, lastname и файл пользователя, поля name и lastname проверяются так:
Код

        $pattern='/[^a-zа-яё]/iu';
        if(preg_match($pattern,$name))$errors['nm']='NM_ER_1';

файл пользователя не проверяется так и пишется в базу нормально, а вот при сохранении файла в папку, получается так: "Фото0831.jpg", причем если не ставить модификатор u в паттерне то поле проверку не проходит, все файлы сохранены в utf-8, кодировка определена в 
Код

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

и в .htaccess :
Код

AddDefaultCharset utf-8

причем проблема возникает на денвере, на хостинге всё работает.
PM MAIL   Вверх
skyboy
Дата 8.10.2012, 22:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 8
Всего: 260



Цитата(zebulun @  8.10.2012,  12:02 Найти цитируемый пост)
 а вот при сохранении файла в папку, получается так: "Фото0831.jpg"

что за файловая система, куда ты сохраняешь?
и, кста, чем сохраняешь? move_uploaded_file?
PM MAIL   Вверх
zebulun
Дата 9.10.2012, 09:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 55
Регистрация: 1.9.2011

Репутация: нет
Всего: нет



файловая система- windows, сохраняю с помощью ф-и imagejpeg
PM MAIL   Вверх
skyboy
Дата 9.10.2012, 10:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 8
Всего: 260



Цитата(zebulun @  9.10.2012,  08:28 Найти цитируемый пост)
файловая система- windows

NTFS или FAT32? " Windows" — это называется "операционной системой"
PM MAIL   Вверх
baldina
Дата 9.10.2012, 10:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3433
Регистрация: 5.12.2007
Где: Москва

Репутация: 4
Всего: 101



Цитата(zebulun @  9.10.2012,  09:28 Найти цитируемый пост)
файловая система- windows

что-то новое))))
PM MAIL   Вверх
zebulun
Дата 10.10.2012, 00:36 (ссылка)    | (голосов:4) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 55
Регистрация: 1.9.2011

Репутация: нет
Всего: нет



NTFS,
вы, типа такие умные сейчас определите из-за чего проблема, по файловой системе, да? если не знаете чем помочь в данном вопросе нечего отвечать вообще.

Это сообщение отредактировал(а) zebulun - 10.10.2012, 00:39
PM MAIL   Вверх
ksnk
Дата 10.10.2012, 07:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 12
Всего: 386



Ну, дык, надо с большой осторожностью пользоваться русским названиями файлов.

Название приходит в utf-8, а для корректной работы, файловые операции в windows желают получать название файла в кодировке cp1251. 

Узнать, что находишься на сервере с windows можно, посмотрев на $_ENV["OS"] Получится что-то вроде `Windows_NT`

А на хостинге точно все нормально с загруженными файлами с русскими названиями? И по ftp они нормально качаются туда-обратно? И ссылки на них с русскими буквами нормально в страницы вставляются?




--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
skyboy
Дата 10.10.2012, 09:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 8
Всего: 260



Цитата(ksnk @  10.10.2012,  06:23 Найти цитируемый пост)
А на хостинге точно все нормально с загруженными файлами с русскими названиями?

скорее всего. меня связка Linux → ext2 → unicode file names не подводила.
Цитата(zebulun @  9.10.2012,  23:36 Найти цитируемый пост)
сейчас определите из-за чего проблема, по файловой системе, да?

думаешь, нечем нам заняться, сообщения строчим?
Цитата(zebulun @  8.10.2012,  12:02 Найти цитируемый пост)
"Фото0831.jpg

это utf-8, который трактуется как cp1251.
можешь попробовать с помощью iconv явно преобразовывать utf-8 → cp1251
но мне не нравится эта идея.
PM MAIL   Вверх
zebulun
Дата 10.10.2012, 09:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 55
Регистрация: 1.9.2011

Репутация: нет
Всего: нет



Да на хостинге все норм, и по ftp - качаются, вот посмотрите
http://webmaster.webtm.ru/test/reg/?profile=118
вывел $_ENV
в принципе я вообще решил отказаться от оригинальных названий загружаемых файлов, но возник еще один вопрос:
я обрабатываю имена файлов так:
Код

$new_name=time().'_'.substr(md5($real_name),0,5);

допустимо ли хранить и использовать файлы без расширения?

Это сообщение отредактировал(а) zebulun - 10.10.2012, 10:06
PM MAIL   Вверх
baldina
Дата 10.10.2012, 10:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3433
Регистрация: 5.12.2007
Где: Москва

Репутация: 4
Всего: 101



Цитата(zebulun @  10.10.2012,  09:57 Найти цитируемый пост)
допустимо ли хранить и использовать файлы без расширения?

конечно. расширение это возможность и соглашение, оно необязательно
PM MAIL   Вверх
ksnk
Дата 10.10.2012, 10:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 12
Всего: 386



Цитата(zebulun @  10.10.2012,  09:57 Найти цитируемый пост)
вывел $_ENV

Нету - значит не надо. На Windows машинах, начиная с win2000 (или даже с Win NT ;) )она ставится сама.
Цитата(zebulun @  10.10.2012,  09:57 Найти цитируемый пост)
допустимо ли хранить и использовать файлы без расширения?

Допустимо. Если при этом описание файла храниться в отдельной базе, и есть гарантия, что доступ к файлам будет только через сайт.

Я в таком случае делал транслитерацию имени файла. Как-то оно проще было ковыряться в каталоге и видеть понятное, в принципе, название, а не маловразумительный хеш.

Это сообщение отредактировал(а) ksnk - 10.10.2012, 10:24


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
zebulun
Дата 10.10.2012, 10:39 (ссылка)    | (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 55
Регистрация: 1.9.2011

Репутация: нет
Всего: нет



Цитата(ksnk @  10.10.2012,  10:24 Найти цитируемый пост)
Я в таком случае делал транслитерацию имени файла. Как-то оно проще было ковыряться в каталоге и видеть понятное, в принципе, название, а не маловразумительный хеш.

а зачем мне там ковырятся? имена в базе, что еще надо?
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Тексты | Следующая тема »


 




[ Время генерации скрипта: 0.0554 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.