$(document).ready(function(){
$("#selcity").keypress(function(e){
$.ajax({
type: "POST",
url: "script.php",
cache: false,
data: "varstr="+$(this).val()+String.fromCharCode(e.which),
success: function(msg){
alert(msg);
}
});
});
});
кодировки js
Код:
и сам script.php
Код:
<?php
header( 'Content-Type: text/html; charset=windows-1251' );
$varstr=mysql_real_escape_string($_POST['varstr']);
echo $varstr;
?>
header( 'Content-Type: text/html; charset=windows-1251' );
$varstr=mysql_real_escape_string($_POST['varstr']);
echo $varstr;
?>
Так вот, в alert(msg) мы получаем (при вводе русских букв) каракули из за несовпадения кодировок где то... видимо из за String.fromCharCode, т.к. она все пишет в UTF-8. Как выйти из ситуации?
Код:
<?php
$varstr=iconv('windows-1251','utf-8',mysql_real_escape_string($_POST['varstr']));
echo $varstr;
?>
$varstr=iconv('windows-1251','utf-8',mysql_real_escape_string($_POST['varstr']));
echo $varstr;
?>
И еще, mysql_real_escape_string - только перед добавлением в базу, htmlspecialchars при отдаче клиенту.
Блин, не помогает(
1) Убедись, что все, сключая сами скриты закодированно в utf-8.
2) Сервер, отдающий код скрипта не добавляет charset=windows-1251
3) Для начала убери из data все fromCharCode и запиши туда тупо какой либо текст кириллицей.
- то скрипт отдает тоже непонятные символы....
Все скрипты в ANSI нет никаких utf-8
Код:
<?php
header( 'Content-Type: text/html; charset=windows-1251' );
$varstr=iconv('utf-8','windows-1251',mysql_real_escape_string($_POST['varstr']));
echo $varstr;
?>
header( 'Content-Type: text/html; charset=windows-1251' );
$varstr=iconv('utf-8','windows-1251',mysql_real_escape_string($_POST['varstr']));
echo $varstr;
?>
Код:
$(document).ready(function(){
$("#selcity").keypress(function(e){
$.ajax({
type: "POST",
url: "script.php",
cache: false,
data: "varstr="+$(this).val()+String.fromCharCode(e.which),
success: function(msg){
alert(msg);
}
});
});
});
$("#selcity").keypress(function(e){
$.ajax({
type: "POST",
url: "script.php",
cache: false,
data: "varstr="+$(this).val()+String.fromCharCode(e.which),
success: function(msg){
alert(msg);
}
});
});
});
mike тебе уже говорил, что использовать mysql_real_escape_string это полный бред. Мне кажется, что стоит к этому прислушаться и почитать документацию в том числе.
Спец кнопки нужно проверять не на charcode а на keycode.
Цитата: alekciy
mike тебе уже говорил, что использовать mysql_real_escape_string это полный бред. Мне кажется, что стоит к этому прислушаться и почитать документацию в том числе.
хочется уточнить - а как же мне тогда передавать данные в sql запрос? нефильтровальными?
Цитата: Maniak
хочется уточнить - а как же мне тогда передавать данные в sql запрос? нефильтровальными?
Фильтруй. Но не внутри iconv. Определи одно место где у тебя происходит фильтрация и там это делай. Сейчас же у тебя код-лапша.