Ответов: 8 Просмотров: 397
|
Проблема следующая
- Есть html документ в кодировке "utf-8". Со страницы отправляется Ajax запрос серверу для php скрипта
- php скрипт в кодировке windows (ANSII)
- Ответ от скрипта все русские символы превращает в кракозяблы. Но что удивительно - параметры с русским текстом которые были переданы скрипту возвращаются нормальным русским текстом.
Добавил в скрипт header('Content-Type: text/html; charset=utf-8'); -- не помогло
Как решить проблему с кодировкой для русского текста если страница и скрипт в разных кодировках?
Ниже привожу код страницы, скрипта и результат полученный от скрипта
CODE ( html):
скопировать код в буфер обмена
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8;"/> <title>passing parameters from JavaScript to PHP</title> <h2><center>Обработка JavaScript запросов в PHP скрипте</center></h2> <script type="text/javascript" src="http://code.jquery.com/jquery-1.11.3.min.js"></script> <script type="text/javascript"> function fjs_to_php_get(){ var p1 = document.getElementsByName("ed1")[0].value; var p2 = document.getElementsByName("ed2")[0].value; $.get("script1.php", {"method" : "$.get", "p1" : p1, "p2" : p2}, showRes ); } function showRes(data){ $("#output").text(data); } </script> </head> <body> <form method="post"> <div> Параметр 1: <input type="text" name="ed1" value="Слово 1"/><br> Параметр 2: <input type="text" name="ed2" value="Слово 2"/><br><br> <input type="button" name="btn1" value="Передать параметры в PHP скрипт на обработку методом $.get" onclick="fjs_to_php_get()"/> <br><br> Результат возвращенный PHP скриптом<br> <textarea id="output" rows=5 cols=120 ></textarea> </div> </form> </body> </html>
PHP:
скопировать код в буфер обмена
<?PHP header('Content-Type: text/html; charset=utf-8'); $v0 = isset($_GET["method"]) ? $_GET["method"] : "no value"; $v1 = isset($_GET["p1"]) ? $_GET["p1"] : "no value"; $v2 = isset($_GET["p2"]) ? $_GET["p2"] : "no value"; $s = __FILE__; echo $s."\n"; $d = date('Y M j H:i:s'); echo $d."\n"; printf("Использованный метод: %s \n\n", $v0); printf("Вы ввели параметры: параметр1 = %s, параметр2 = %s", $v1, $v2); ?>
Результат возвращенный PHP скриптом
D:\WWW\simple_php\js_to_php\script1.php
2015 May 29 10:01:47
�������������� �����: $.get
�� ����� ���������: ��������1 = Слово 1, ��������2 = Слово 2
!Если php скрипт перекодировать в UTF-8 то весь русский текст будет нормальным[u][/u] |