1

Тема: Сбивается кодировка.

И снова здравствуйте!
У меня следующая проблема. Есть страница (в кодировке ANSI). На ней есть форма обратной связи.Форму обрабатывает скрипт (тоже в кодировке ANSI). В него подключается другой скрипт (опять та же кодировка), который отправляет данные формы на указанный в скрипте адрес. Но все данные введенные на русском языке превращаются в абракадабру сразу, попадая в скрипт. И это только на хостинге. На локальном сервере все ок. Никаких процедур, через которые проходят данные нет. Т.е. данные не изменяются. Подскажите, как это исправить.

Заранее спасибо.

2

Re: Сбивается кодировка.

Попробуйте прописать кодировку скриптов создав в корне хоста файл .htaccess со строкой:

PHP_VALUE default_charset windows-1251

3 (изменено: Hase, 2012-07-21 15:32:00)

Re: Сбивается кодировка.

Hanut сказал:

Попробуйте прописать кодировку скриптов создав в корне хоста файл .htaccess со строкой:

Увы, не помогло. Я еще прописал в тег <form></form> задание кодировки, но и это не помогло. Кстати, а русские данные, которые изначально были в скрипте выводятся правильно...

4

Re: Сбивается кодировка.

Hase сказал:

Увы, не помогло.

Проверьте в каком виде данные передаются из формы перехватив их с помощью exit(), например. С Ajax такая проблема быть может, но не с обычной формой.

5

Re: Сбивается кодировка.

Хм, можете пожалуйста привести пример, как перехватить с помощью этой функции, пожалуйста? Заранее спасибо.

6

Re: Сбивается кодировка.

Сейчас отключил Ajax в форме, действительно, сейчас пришло корректное сообщение, без ошибок в кодировке. Может вы в курсе, как можно исправить эту ошибку?

скрипт обработки формы простой:

        //AJAX FORM MAIL
            $('document').ready(function() {
                $('#mail').ajaxForm( {
                    target: '#preview2', 
                    success: function() { 
                        $('#ajaxloader2').css('opacity','0');
                        $('#errormsg2').animate( {opacity:1}, 2000 );
                        $('#errormsg3').animate( {opacity:1}, 2000 );
                        $('#errormsg4').animate( {opacity:1}, 2000 )
                    } 
                }); 
            });

7

Re: Сбивается кодировка.

Hase сказал:

Может вы в курсе, как можно исправить эту ошибку?

Смотрите PHP скрипт обрабатывающий данные из Ajax. В нем конвертируйте полученные данные с помощью iconv.

iconv('utf-8', 'windows-1251', $str);

8

Re: Сбивается кодировка.

        $username = $_POST['username'];
            $information = $_POST['information'];
        iconv('utf-8', 'windows-1251', $username);
        iconv('utf-8', 'windows-1251', $information);

Я должен сделать так? Если у меня сбивается именно эти 2 переменные? Просто сделав так, у меня данные отправляются некорректно.  hmm

9

Re: Сбивается кодировка.

$username = iconv('utf-8', 'windows-1251', $_POST['username']);
$information = iconv('utf-8', 'windows-1251', $_POST['information']);

Сделал так, все заработало. Спасибо Вам огромное за помощь. smile