php form submit utf8?

На моем веб-сайте есть форма с простой текстовой областью, чтобы люди могли публиковать комментарии. Проблема в том, что иногда я получаю информацию в uft8, а иногда и в iso. Можно ли это контролировать?

Возможно, я делаю что-то неправильно, но возможно ли, что браузер изменил кодификацию данных, которые он отправил?

благодаря

Solutions Collecting From Web of "php form submit utf8?"

Если вы хотите быть уверенным в том, какой набор символов вы принимаете, установите его в своей форме

<form method="post" action="/your/url/" accept-charset="UTF-8"> </form> 

Здесь вы можете увидеть все допустимые наборы символов : Наборы символов

вы всегда можете заставить UTF-8. Затем вы можете отправлять, получать и хранить данные в обложке объявления UTF-8 на большинстве человеческих языков без необходимости менять набор символов.

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

но … проверьте перед кодировкой, если строка уже utf8, иначе вы дважды закодируете ее

 function str_to_utf8 ($string) { if (mb_detect_encoding($string, 'UTF-8', true) === false) { $string = utf8_encode($string); } return $str; } 

или использовать

 $string = utf8_encode(utf8_decode($string)); 

поэтому вы не будете дважды кодировать строку

Я решил эту проблему, изменив mbstring.http_input = передать в файл php.ini

Есть ли у вас тесты с несколькими браузерами, если это происходит на всех / некоторых из них или только на IE?

Вы можете кодировать данные $ _POST в UTF-8 с помощью функции utf8_encode PHP.

Что-то вроде:

 $_POST['comments'] = utf8_encode( $_POST['comments'] );