| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > JavaScript: для новичков > Ajax - проблема с кодировкой |
| Автор: Win MK 32 27.5.2009, 23:52 | ||||||
| Я просто уже поседею скоро от таких переживаний. Почему у меня при передачи в AJAX параметра на русском языке передаются кракозябры??? Вроде все советы учел - один фиг. ПА-МА-ГИ-ТЕ !!! index.php:
php.php:
|
| Автор: Veve 28.5.2009, 00:17 |
| Этот результат вижу я: Array ( [var] => 1 [text] => черепаха ) черепаха У тебя что-то не так вместо слов, или я чего-то не понимаю? |
| Автор: bars80080 28.5.2009, 00:43 |
| ajax работает только с utf8 надо пропускать текст и на сервере и в клиенте через кодирующие функции. на js это encodeURIComponent и decodeURIComponent на пхп это rawurlencode и rawurldecode, плюс iconv('cp-1251', 'utf-8', $text) и наоборот в данном случае, тебе на приёме на сервере нужно пропустить данные через iconv('utf-8', 'cp-1251', $text) |
| Автор: youri 28.5.2009, 03:31 |
если не воспользоваться encodeURIComponent, ie отсылает в кодировке страницы |
| Автор: youri 28.5.2009, 07:45 |
| такой вариант у тебя работает? |
| Автор: Win MK 32 28.5.2009, 07:54 |
| youri, выдает немного кракозябров: чя Добавлено через 1 минуту и 5 секунд В Опере, Фаерфоксе, Сафари, IE. В общем везде |
| Автор: ksnk 28.5.2009, 08:05 | ||||
Более конкретно совет bars80080 выглядит так :
Это обязательно, потому что кто его знает, откуда там на самом деле берутся черепахи. Может она в кавычках... на стороне PHP может быть чего-то такое
Функцию detectUTF8 можно самому поискать на просторах тырнета. Она необязательна, но важна. Без нее нельзя будет написать такое в адресной строке, для проверки... Магическое слово //IGNORE при указании кодировки - обязательно, так как без него можно получить ту самую пустую строку. |
| Автор: Win MK 32 28.5.2009, 08:15 |
| ksnk, у меня после этого всего выводится пустая строка. |
| Автор: ksnk 28.5.2009, 08:37 | ||
Имя кодировки нужно писать правильно
и скобочку лишнюю я в JS забыл... поправил |
| Автор: ksnk 28.5.2009, 09:00 |
| Чего-то я сегодня торможу... не все XmlHttp реквесты одинаково полезны. Я в том смысле, что если ВЫДАВАТЬ контент в UTF-8, то проблем будет на порядок меньше, а волосы наконец, станут шелковистыми... А хидеры, по всей видимости при таком Ajax'е идут лесом... |
| Автор: Win MK 32 28.5.2009, 09:00 | ||
| ksnk, спасибо большое!!! Теперь все работает так, как надо Как же здорово было родиться англоговорящим Добавлено через 1 минуту и 58 секунд
Ну у меня до этого поста все заработало. Пока жить можно |
| Автор: ksnk 28.5.2009, 09:03 |
| Win MK 32, Не все так просто. Достаточно вставить в php.php оператор echo "Привет";. чтобы почувствовать, что не все в мире устроено правильно |
| Автор: youri 28.5.2009, 10:24 | ||
странно, а у меня везде (ie 6, ie 7, opera 9, ff 3, ff 2, chrome) работает (windows), а если это все на сервер записать (linux), то не работает. Но зато на сервере работает такое: |
| Автор: Win MK 32 28.5.2009, 15:44 |
| ksnk, а у меня это работает на всех браузерах Добавлено через 9 минут и 13 секунд youri, проверил - действительно тоже работает. |
| Автор: Photon 30.5.2009, 16:08 |
| Ну не зря же давно советуют использовать только UTF-8. Делайте так и будет вам счастье.. |