X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

2 страниц V   1 2 >
Открыть тему
Тема закрыта
> Как сменить кодировку файла?
gaaarfild
gaaarfild
Topic Starter сообщение 19.9.2010, 18:41; Ответить: gaaarfild
Сообщение #1


Есть ли возможность средствами php изменить кодировку файла, загруженного на сервер, не считывая его? Например с cp1251 на UTF-8
Заранее спасибо.
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
AltaVista_mw
AltaVista_mw
сообщение 25.9.2010, 12:18; Ответить: AltaVista_mw
Сообщение #2


На сколько я знаю.. такой функции нет! Хотя смотря что за файл и для каких целей он туда загружается.. Можно более подробно расписать??? А то не совсем понятен вопрос..
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ZiTosS
ZiTosS
сообщение 26.9.2010, 11:10; Ответить: ZiTosS
Сообщение #3


gaaarfild, в стандартных пакетах такой функции не видел, но думаю, что должна быть как минимум в PCRE или PCEL.
Или возможно даже в каких-либо общественных фреймворках. Но как мне кажется, без чтения файла кодировку не поменять.
Кодировка - представление символа строго определенной комбинацией знаков. То есть каждому символу соответствует определенная комбинация. В разных кодировках разные последовательности. Поэтому чтобы перевести из одной кодировки в другую, нужно считывать каждый символ файла и изменять его представление из одной кодировки в другую посредством смены комбинации знаков.
Так что тут без чтения самого файла никак не обойтись. У меня кстати где-то была функция перекодировки символов из cp1251 в UTF-8 и обратно посимвольно. Если надо, выложу. Хотя и в инете это всё можно найти.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
gaaarfild
gaaarfild
Topic Starter сообщение 26.9.2010, 16:02; Ответить: gaaarfild
Сообщение #4


Ну файлы загружаются пользователями.
Но порой они путают кодировки. А для загрузки в БД критично, чтобы была кодировка UTF-8.
Файл читается средствами СУБД а не PHP.
Поэтому необходимо сменить кодировку файла до чтения.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
alex_zp
alex_zp
сообщение 27.9.2010, 2:23; Ответить: alex_zp
Сообщение #5


А почему просто не перекодировать файл, при загрузке на сервер?
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
gaaarfild
gaaarfild
Topic Starter сообщение 1.10.2010, 14:10; Ответить: gaaarfild
Сообщение #6


Так как его перекодировать?
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
yury_mw
yury_mw
сообщение 1.10.2010, 19:43; Ответить: yury_mw
Сообщение #7


gaaarfild,
вроде средствами апача можно перекодировать:
в .htaccess помещаем инструкцию
CharsetSourceEnc windows-1251

или для utf-8
CharsetSourceEnc utf-8

Из описания инструкции: "При загрузке посетителем файла на сервер, возможна перекодировка его - указываем, что все получаемые файлы будут иметь кодировку windows-1251".

Я сам это не использовал, если протестируешь этот вариант - отпиши о результатах.


Поблагодарили: (1)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
gaaarfild
gaaarfild
Topic Starter сообщение 12.10.2010, 14:47; Ответить: gaaarfild
Сообщение #8


А данную директиву куда кидать?
В корень сайта? Или вообще куда? =)
Я поместил в корне сайта в .htaccess. Не поменялась кодировка.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ZiTosS
ZiTosS
сообщение 12.10.2010, 23:13; Ответить: ZiTosS
Сообщение #9


gaaarfild, возможно нужен доп. модуль для Apache, почитай по данной директиве. А так, куда кидать, писалось выше :lol:
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
yury_mw
yury_mw
сообщение 13.10.2010, 14:01; Ответить: yury_mw
Сообщение #10


(gaaarfild @ 12.10.2010, 14:47) *
А данную директиву куда кидать?
В корень сайта? Или вообще куда? =)
Я поместил в корне сайта в .htaccess. Не поменялась кодировка.

gaaarfild,
Действие команд из файла .htaccess распространяется и на подкаталоги того каталога, в котором этот файл размещен. Если файл .htaccess расположен в корневой директории сервера, то его действие распространяется на весь сервер, кроме тех директорий, где находится другой файл . htaccess (и кроме всех папок "ниже" этой папки со вторым . htaccess).
...
главная проблема при использовании директив .htaccess – это прежде всего ограничения хостеров, особенно на бесплатных серверах, и на начальных тарифах при платном хостинге, хотя как правило, многие не ресурсоемкие и безопасные директивы здесь уже разрешаются.

взято отсюда: http://www.htaccess.net.ru/doc/htaccess/

Короче, одно из двух:
либо у вас хостер ограничил использование .htaccess (для справки: настройки апача в том числе и настройки использования .htaccess живут в httpd.conf - конкретно, директива AllowOverride разрешает/запрещает использование .htaccess)
либо директива CharsetSourceEnc делает не совсем то, что кажется из ее описания ;)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
2 страниц V   1 2 >
Открыть тему
Тема закрыта
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Как вы бросили работу и перешли на заработок с сайтов?
7 uahomka 1567 17.3.2024, 14:54
автор: uahomka
Открытая тема (нет новых ответов) Арбитражники, как ведете учет расходов и доходов?
10 Boymaster 1469 17.3.2024, 3:22
автор: malamut
Открытая тема (нет новых ответов) Как отозвать банковский платеж фрилансеру?
26 metvekot 3656 15.3.2024, 10:42
автор: Skyworker
Горячая тема (нет новых ответов) Как вы отдыхаете от работы за компом
140 adw-kupon.ru 18369 12.3.2024, 23:28
автор: Lumex
Горячая тема (нет новых ответов) Как бездомные хранят деньги?
79 metvekot 13010 12.3.2024, 23:00
автор: Lumex


 



RSS Текстовая версия Сейчас: 19.3.2024, 15:20
Дизайн