| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Perl: разработка для Web > кириллица в cookies |
| Автор: Deft 30.12.2008, 15:05 | ||
| устанавливаю куки через Set-Cookie читаю так:
работает только с латиницей, что поменять чтоб и с кириллицей пахало? з.ы. темы на форуме по кукисам читал, но как в данном случае добавить кириллицу не нашел... |
| Автор: ginnie 30.12.2008, 15:18 |
| Deft, а какие именно проблемы с кириллицей? Можно описать подробнее, а то угадывать тяжеловато. |
| Автор: Deft 30.12.2008, 15:36 |
| ну к примеру записываем "тест" читаем "тест" ... |
| Автор: ginnie 30.12.2008, 16:12 |
| Deft, рекомендую сохранять данные в cookie в uft8. Если не хотите, смотрите в направлении модуля Encode, Вам надо конвертировать текст из unicode в нужную кодировку (вероятно, cp1251). |
| Автор: Deft 30.12.2008, 16:36 |
| utf8 мне не подходит, т.к. еще идет работа с mysql и туда мне надо в 1251 сохранять... а что за модуль encode и как его конкретно применить ? а то я не особо разбираюсь( з.ы. как я понял его надо ставить отдельно? просто работаю с университетским сервером (курсовую делаю) и если этот модуь не ставится по умолчанию с перлом а является каким-то специфичным то врятли он установлен.. |
| Автор: ginnie 31.12.2008, 14:21 |
| Deft, работать с cookie в utf8, а в БД сохранять в cp1251 проблемы не составляет: клиент mysql умеет перекодировать (надо только указать кодировку при соединении), правда, не во всех версиях. Для перекодировки в скрипте можно использовать функцию Encode::from_to(). Модуль http://search.cpan.org/~dankogai/Encode-2.26/Encode.pm на Вашем сервере с большой вероятностью установлен - теперь он ставится в составе дистрибутива. Проверить это не сложно - добавьте use Encode в скрипт и запустите на выполнение. |
| Автор: tolkien 31.12.2008, 15:02 |
| Кодируй значения кук url кодингом. Тем более у тебя всравно обратный процесс декодинга уже имеется. |
| Автор: Deft 2.1.2009, 08:32 | ||||||
что это значит? что за урл кодинг? ginnie, для проверки делаю:
в чем ошибка? з.ы если заменить
на
то на выходе получаем "????" |
| Автор: tolkien 2.1.2009, 11:34 | ||
Вот у тебя строчка
Она декодирует. А тебе надо наоборот еще и кодировать когда сохраняешь значения куки. Т.е русские буквы A, Б, В переводить в псолед. вида %A0, %A1, %A2. |
| Автор: Deft 2.1.2009, 12:18 | ||
погуглил чутка, наткнулся на
оно? декодирующая функция там вроде как у меня была.. только с seg на конце вместо eg только помоему что в декодирующей функции что в кодирующей используется одна латиница... |
| Автор: tolkien 2.1.2009, 14:13 | ||
Пример
|
| Автор: Deft 10.1.2009, 06:35 | ||
| все оказалось проще: подключил
затем использовал uri_escape(); и uri_unescape(); |
| Автор: Usmanec 24.2.2009, 16:19 | ||
| Вобщето нецелесообразно гонять большое количество данных в заголовках запроса. Проще пользователю присвоить идентификатор и все хранить на сервере. А вобще перед тем как установить кукис нужно преобразовать недопустимые символы.
В результате получим следующую строку %CF%E0%F0%E0%EC%E5%F2%F01=%C7%ED%E0%F7%E5%ED%E8%E51; %CF%E0%F0%E0%EC%E5%F2%F02=%C7%ED%E0%F7%E5%ED%E8%E52; Name=V+a+l+u+e; %CF%E0%F0%E0%EC%E5%F2%F0N=%C7%ED%E0%F7%E5%ED%E8%E5N |