В какой кодировке приходят данные в php скрипт из формы

ruslanix

Новичок
В какой кодировке приходят данные в php скрипт из формы

Подскажите пожалуйста, как определить в какой кодировке приходят данные из формы.
Какое кодирование, на каком этапе происходит, при передаче данных от браузера в пхп код и обратно.

На сколько я понимаю цепочка примерно такая

1. Browser
2. web-server
3. php-код

1. Браузер определяет кодировку в которой приходят данные от сервера через http заголовок content-type плюс через meta-так в самом html. Последний имеет больший приоритет.
Мы вводим данные в форму, например на русском языке. Вот тут вопрос а в какой кодировке мы сейчас ввели данные?
Браузер кодирует эти данные т.о. чтобы все не ASCII символы заменялись на %HH и отсылает серверу. Опять вопрос откуда сервер знает в какой кодировке данные отослались?
2. веб-сервер получает данные, и скорее всего ничего не перекодирует и передает данные в пхп
3. Вопрос: похоже что php на автомате перекодирует данные в какую-то предустановленную кодировку?
Если это так, то как ее определить и каким образом она устанавливается.

Я знаю есть модуль mb_string.
Для него в php.ini можно задать следующие установки:

ini_set( 'mbstring.detect_order', 'auto');
ini_set( 'mbstring.http_input', 'auto');
ini_set( 'mbstring.http_output', 'UTF-8');
ini_set( 'mbstring.internal_encoding', 'UTF-8');
ini_set( 'mbstring.substitute_character', 'none');

В таком случае все данные приходящие с формы будут находится в utf-8, по идее.
А если этот модуль не установлен, что тогда?

Вопрос возник, т.к. мне нужно написать плагин, который будет устанавливаться на разные сервера и обрабатывать данные из формы.
Может у кого есть ссылка на статью, детально описывающую что к чему.
Буду очень благодарен.

Спасибо.
 

Фанат

oncle terrible
Команда форума
В той, в которой была сама форма. Это очевидно.
1. См. выше.
2. да.
3. щаз, разбежался.

мне нужно написать плагин, который будет устанавливаться на разные сервера и обрабатывать данные из формы.
И зачем тебе знать для этого кодировку?
 

ruslanix

Новичок
И зачем тебе знать для этого кодировку?
У плагина есть админка.
У этой админки тоже есть формы для редактирования определенных данных.

Свою админку я вывожу в UTF-8:

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

И я думал, что в этой же кодировке я получаю данные обратно из формы админки.
Однако это все работает если сайт(сервер или что там:) ) на UTF-8

Есть один сайт, к которму подключен плагин.
Этот сайт на windows-1251,
Когда я воожу русские символы в форму админки, то в пхп=код моего плагина приходят пустые значения вместо русским символов.
 

dimagolov

Новичок
ruslanix, у тебя плагин в отдельной папке живет? пропиши для него в настройках апача AddDefaultCharset utf-8 и радуйся жизни...
 

Фанат

oncle terrible
Команда форума
Я одного не понимаю - а что ВИДИТ юзер, которому показывают текст в utf-8 на странице в 1251?
или там не utf-8 а ентити?
 

ruslanix

Новичок
Автор оригинала: dimagolov
пропиши для него в настройках апача AddDefaultCharset utf-8
Да, каталог в отдельном плагин, но:

1. Я не могу прописывать что-то у пользователя на сервере. Или это можно сделать в файле .htaccess в самом каталоге плагина?

Автор оригинала: *****
Я одного не понимаю - а что ВИДИТ юзер, которому показывают текст в utf-8 на странице в 1251?
У меня админка идет своим html-ем, не встроенным в сайт пользователя.
И в этом Html-е я задаю charset = UTF-8
 

dimagolov

Новичок
Или это можно сделать в файле .htaccess в самом каталоге плагина?
тебя забанили на гугле? мало ему сказать что конкретно надо сделать, так еще и мануал пересказать своими словами надо.
 
Сверху