Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 23.02.2009, 13:22
Проблема с AHAH
 
Сообщений: n/a

Проблемы с кодировками
У меня такая проблема!

Есть страница поиска данных в mysql, базе которая работает на $.post (JQUERY AHAH) но когда я передаю параметры поиска в пхп скрипт они в него приходят иероглифами. Может быть кто то знает в чем причина и подскажет мне как все исправить??
Ответить с цитированием
  #2 (permalink)  
Старый 23.02.2009, 16:01
...
Отправить личное сообщение для Zibba Посмотреть профиль Найти все сообщения от Zibba
 
Регистрация: 13.10.2008
Сообщений: 225

Кодировки utf !?
Ответить с цитированием
  #3 (permalink)  
Старый 23.02.2009, 16:12
kaaron
 
Сообщений: n/a

нет кодировки у меня везде windows-1251
Ответить с цитированием
  #4 (permalink)  
Старый 23.02.2009, 16:28
kaaron
 
Сообщений: n/a

Иероглифы выводит примерно такие РІРЅСЂРІР°
Ответить с цитированием
  #5 (permalink)  
Старый 23.02.2009, 16:31
...
Отправить личное сообщение для Zibba Посмотреть профиль Найти все сообщения от Zibba
 
Регистрация: 13.10.2008
Сообщений: 225

Эммм попробуйте utf =) , просто на сколько я осведомлен в данном вопросе js работает с utf, следовательно ваш post запрос посылается в utf, потому и такие иероглифы приходят.
Ответить с цитированием
  #6 (permalink)  
Старый 23.02.2009, 16:39
kaaron
 
Сообщений: n/a

Если ставлю везде на сайте UTF-8 все получается в ромбиках
Ответить с цитированием
  #7 (permalink)  
Старый 23.02.2009, 20:00
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

РІРЅСЂРІР°=внрва
похоже ваш сервер отдает конетне все-таки в utf-8
Ответить с цитированием
  #8 (permalink)  
Старый 25.02.2009, 00:45
Интересующийся
Отправить личное сообщение для SDone Посмотреть профиль Найти все сообщения от SDone
 
Регистрация: 24.02.2009
Сообщений: 17

$text - данные которые надо перекодировать в windows-1251.
Данный пример мне помог избавится от "квадратиков" при подгрузки данных в страницу.

$text = htmlentities($text,0,"windows-1251");
$trans_tbl = get_html_translation_table (HTML_ENTITIES);
$trans_tbl = array_flip ($trans_tbl);
$text = strtr ($text, $trans_tbl);
echo $text;
Ответить с цитированием
  #9 (permalink)  
Старый 04.05.2009, 23:12
Новичок на форуме
Отправить личное сообщение для PycT Посмотреть профиль Найти все сообщения от PycT
 
Регистрация: 04.05.2009
Сообщений: 7

У меня тоже непонятная проблема с кодировкой 1251, использу скриптики ahah - посылаемые данные отправляются (или обрабатываются на сервере уже?) в кривой кодировке. Много всего перепробовал, и через пхп в каждом скрипте заголовок выставил, и просто через метатэги, везде прописал чарсет, пытался через .htaccess задать кодировку - не прокатило, интернал еррор дает. Способ от SDone тоже попробовал - не помогло. В скриптик добавил строку req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=windows-1251"); Ничего не помогает. Что самое интересное - если страницу обновить, то проблема исчезает. Но при первой загрузке все плохо. Проблема только с получаемыми от клиента данными. Полученные с сервера списки отображаются нормально. Как решить?
Ответить с цитированием
  #10 (permalink)  
Старый 04.05.2009, 23:24
Интересующийся
Отправить личное сообщение для SDone Посмотреть профиль Найти все сообщения от SDone
 
Регистрация: 24.02.2009
Сообщений: 17

Слушай проблемы могут быть из за:
1 Mysql не правильно кодирует. для того что бы были русские символы надо:
$dbcnx = @mysql_connect($dblocation,$dbuser,$dbpass);
if (!$dbcnx)
{
echo "<br> Сервер не доступен!";
}
if (!@mysql_select_db($dbname, $dbcnx))
{
echo "<br> нет таблици!";
}
mysql_query("SET NAMES cp1251"); // вот это говорит что нам нуна наша русская кодировка.

2 скрипт ява отправляет на пхп в utf кодировке.
Мы решаем так:

2.1 принимаем данные от ява так: $name = iconv("UTF-8","WINDOWS-1251",$_POST[name]);
теперь name моно хоть куда. допустим:
$query = mysql_query("INSERT INTO ".$prifiks."_comments VALUES ('','$_POST[id]','$content',NOW(),'1','','$name','','$_POST[email]')");

Видишь не везде я и применил iconv. Применяй только где будут русские символы.

2.2 теперь если ты хочешь отправить принятые данные в яву используй след:
function rnt ($str)
{
$str = htmlentities($str,0,"windows-1251");
$trans_tbl = get_html_translation_table (HTML_ENTITIES);
$trans_tbl = array_flip ($trans_tbl);
$str = strtr ($str, $trans_tbl);
return $str;
}
Просто впихни echo rnt ($name); и ответит по русски тебе скрипт.

Я делаю cms систему ну точнее уже заканчиваю. coldphp.ru там демка. ну так вот все через ajax - ну почти.
Я пользуюсь этими методами что описал выше. пока все пашет.

Последний раз редактировалось SDone, 04.05.2009 в 23:26. Причина: структура касая :)
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблемы с кодировками kaaron jQuery 6 19.02.2009 18:58
Проблемы с insertRow и insertCell AgRy Events/DOM/Window 1 12.02.2009 12:50
проблемы с Post Phoenix (X)HTML/CSS 11 31.10.2008 04:25
Проблемы с методом POST demoniqus Общие вопросы Javascript 16 25.07.2008 18:09
проблемы с стилями наверное ropil Общие вопросы Javascript 1 22.05.2008 18:38