За последние 24 часа нас посетили 17623 программиста и 1723 робота. Сейчас ищут 909 программистов ...

Проблема с кодировкой при Ajax запросе

Тема в разделе "Прочие вопросы по PHP", создана пользователем shurik_shink, 29 май 2015.

  1. shurik_shink

    shurik_shink Новичок

    С нами с:
    17 май 2015
    Сообщения:
    79
    Симпатии:
    0
    Проблема следующая
    - Есть html документ в кодировке "utf-8". Со страницы отправляется Ajax запрос серверу для php скрипта
    - php скрипт в кодировке windows (ANSII)
    - Ответ от скрипта все русские символы превращает в кракозяблы. Но что удивительно - параметры с русским текстом которые были переданы скрипту возвращаются нормальным русским текстом.

    Добавил в скрипт header('Content-Type: text/html; charset=utf-8'); -- не помогло

    Как решить проблему с кодировкой для русского текста если страница и скрипт в разных кодировках?

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

    HTML документ
    Код (PHP):
    1. <html>
    2. <head>
    3.   <meta http-equiv="Content-Type" content="text/html; charset=utf-8;"/>
    4.   <title>passing parameters from JavaScript to PHP</title>
    5.   <h2><center>Обработка JavaScript запросов в PHP скрипте</center></h2>
    6. <script type="text/javascript" src="http://code.jquery.com/jquery-1.11.3.min.js"></script>
    7. <script type="text/javascript">
    8. function fjs_to_php_get(){
    9.     var p1 = document.getElementsByName("ed1")[0].value;
    10.     var p2 = document.getElementsByName("ed2")[0].value;
    11.     
    12.     $.get("script1.php",
    13.           {"method" : "$.get", "p1" : p1, "p2" : p2},
    14.           showRes
    15.     );
    16. }
    17.  
    18. function showRes(data){
    19.     $("#output").text(data);
    20. }
    21. </script>
    22. </head>
    23. <body>
    24. <form method="post">
    25. <div>
    26.   Параметр 1: <input type="text" name="ed1" value="Слово 1"/><br>
    27.   Параметр 2: <input type="text" name="ed2" value="Слово 2"/><br><br>
    28.   <input type="button" name="btn1" value="Передать параметры в PHP скрипт на обработку методом $.get" onclick="fjs_to_php_get()"/>
    29.   <br><br> 
    30.   Результат возвращенный PHP скриптом<br>
    31.   <textarea id="output" rows=5 cols=120 ></textarea>
    32. </div>  
    33. </form>
    34. </body> 
    35. </html>
    PHP скрипт
    Код (PHP):
    1. <?php
    2.   header('Content-Type: text/html; charset=utf-8');
    3.  
    4.   $v0 = isset($_GET["method"]) ? $_GET["method"] : "no value";
    5.   $v1 = isset($_GET["p1"]) ? $_GET["p1"] : "no value";
    6.   $v2 = isset($_GET["p2"]) ? $_GET["p2"] : "no value";
    7.  
    8.   $s = __FILE__;
    9.   echo $s."\n";
    10.   
    11.   $d = date('Y M j H:i:s');
    12.   echo $d."\n";
    13.   printf("Использованный метод: %s \n\n", $v0);
    14.   printf("Вы ввели параметры: параметр1 = %s, параметр2 = %s", $v1, $v2); 
    15. ?>

    Результат возвращенный PHP скриптом
    Код (PHP):
    1. D:\WWW\simple_php\js_to_php\script1.php
    2. 2015 May 29 10:01:47
    3. �������������� �����: $.get
    4.  
    5. �� ����� ���������: ��������1 = Слово 1, ��������2 = Слово 2
    !Если php скрипт перекодировать в UTF-8 то весь русский текст будет нормальным
     
  2. p@R@dox 55RU

    p@R@dox 55RU Зэк
    [ БАН ]

    С нами с:
    21 май 2014
    Сообщения:
    1.358
    Симпатии:
    7
    Адрес:
    с планеты Ялмез
    хорошим тоном было бы - весь код привести к одной кодировке, а там уже видно будет в чем может быть еще проблема..
     
  3. shurik_shink

    shurik_shink Новичок

    С нами с:
    17 май 2015
    Сообщения:
    79
    Симпатии:
    0
    Как уже отметил - если файлы в одной кодировке то проблем нет.
    Тем не менее очень хотелось бы найти решение данной проблемы - когда файлы web страницы и php скрипта в разных кодировках