| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Общие вопросы > COOKIE чиитаются в неправильной кодировке |
| Автор: DjoNIK 26.4.2007, 20:51 | ||
| Проблема: Cookies-ы, установленые на клиентской машине JavaScript-ом, считываются на сервере простеньким скриптом:
Сам файл cookies-ов хранит значение в правильной кодировке (я думаю, что проблема именно в кодировке). Под IE (6...7) всё работает как надо, под OPERA (8...9,02) отображает не пойми что (для русских "ррр" из cookies-ов, например, это выглядит как "@@@"). Помогите, чем могите |
| Автор: Всемогущий 26.4.2007, 20:59 |
| если вообще ничего не выйдет Base64 кодировать куки http://www.webtoolkit.info/javascript-base64.html а потом раскодировать с помощю php |
| Автор: DjoNIK 26.4.2007, 21:14 |
| JavaScript::escape() конечно можно ещё, но я не знаю какой функцией в php обратно в нормальные символы перевести |
| Автор: Всемогущий 27.4.2007, 17:26 |
| http://www.php.slaed.net/f/base64-decode.html |
| Автор: DjoNIK 28.4.2007, 21:15 |
| Если http://www.php.slaed.net/f/base64-decode.html - ответ на JavaScript::escape(), то я чего-то не пойму, помоему под base64 в Java нет свой функции, её либо искать надо, либо самому написать (что я и зделал). |
| Автор: Всемогущий 29.4.2007, 07:27 |
| я же в первом посте дал ссылку на то как кодировать в javascript Добавлено через 2 минуты и 1 секунду Я понял в чём главная ошибка:до того как писать что то в куки переводим текст в utf8 |
| Автор: DjoNIK 29.5.2007, 20:49 |
| В процессе использования данного метода выявился досадный недочёт... Когда я кодирую джавой строку русских символов в БАСЕ64 на выходе может получится строка, содержащая символы +-ы. Мне необходимо передать эти данные через ГЕТ в пхп-шный скрипт и раскодировать эту строку в исходную. Но пхп-скрипт судя по-всему заменяет все +-ы из ГЕТ-а на пробелы, и при раскодировке получается совсем не то, что хотелось бы :( Так вот проблема решается довольно просто: а) В джаве encodeURIComponent(enBASE64(str)) б)В ПХП base64_decode($str); |