проблемы с кодировкой AJAX

MySQL AJAX кодировка

суть проблемы такова:
есть ajax который передает введенные данные на серверный скрипт(php), из php эти данные попадают в MySql, откуда они в дальнейшем и выводятся. выводится все нормально, но в базе при этом вместо нормальных кирильских слов вот такое апрвапр. как сделать так, чтобы в базе текст на кирилице сохранялся оригиналом, тоесть написал "привет", в базе "привет" а не апрвапр. файл с AJAX и обработчик ajax.php имеют кодировку utf-8.

код AJAX:
<html>
<head>
<script type="text/javascript" language="javascript">
var req = Create();

function ge(id)
{
return document.getElementById(id);
}

function Create(){
if(navigator.appName == "Microsoft Internet Explorer"){
req = new ActiveXObject("Microsoft.XMLHTTP");
}else{
req = new XMLHttpRequest();
}
return req;
}

function Request(query)
{
req.open('post', 'ajax.php' , true );
req.onreadystatechange = Refresh;
req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=utf-8");
req.send(query);
}

function Refresh()
{
if( req.readyState == 4 )
ge('ajax').innerHTML = req.responseText;


}
function Pusk()
{
var query;

query ='txt='+encodeURIComponent(ge('myid').value);

Request(query);
}
</script>
</head>
<body>
<div id="ajax"></div>

<input type='text' id='myid' ><br>
<input type="button" value="пошел" onClick="Pusk()">
<img src="prel.gif" width="1" height="1" />
</body>
</html>

код файла обработчика ajax.php:

<?php

$db = mysql_connect ("localhost","ajax","ajax");
mysql_select_db("testova",$db);


$txt = isset($_POST['txt'])?$_POST['txt']:NULL;

sleep(1);
echo "<br>";

mysql_query ("INSERT INTO `tess` (name) VALUES ('".$txt."')");

$action_show = mysql_query("SELECT DISTINCT * FROM tess");
$show = mysql_fetch_array($action_show);
do
{
echo $show[name].'<br>';
}
while ($show = mysql_fetch_array($action_show));

?>

Примечание:
сделал так:
-index.html(файл с AJAX) - кодировка UTF-8;
-ajax.php (файл обработчик) - кодировка ANSI;
-в файлк ajax.php перед вводом в базу добавил вот это $txt=iconv('utf-8','windows-1251',$txt);

и все работает!
Спасибо
Ответы:
Укажи кодировку, в которой будет работать mysql — set names utf8
проверь вывод echo "mysql_query (\"INSERT INTO `tess` (name) VALUES (\'\".$txt.\"\')\");"


14 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.