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, по идее.
А если этот модуль не установлен, что тогда?
Вопрос возник, т.к. мне нужно написать плагин, который будет устанавливаться на разные сервера и обрабатывать данные из формы.
Может у кого есть ссылка на статью, детально описывающую что к чему.
Буду очень благодарен.
Спасибо.
Подскажите пожалуйста, как определить в какой кодировке приходят данные из формы.
Какое кодирование, на каком этапе происходит, при передаче данных от браузера в пхп код и обратно.
На сколько я понимаю цепочка примерно такая
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, по идее.
А если этот модуль не установлен, что тогда?
Вопрос возник, т.к. мне нужно написать плагин, который будет устанавливаться на разные сервера и обрабатывать данные из формы.
Может у кого есть ссылка на статью, детально описывающую что к чему.
Буду очень благодарен.
Спасибо.
) на UTF-8