![]() |
Модераторы: korob2001, ginnie |
![]() ![]() ![]() |
|
GShadrin |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 101 Регистрация: 20.7.2009 Где: Екатеринбург Репутация: нет Всего: нет |
На стороне клиента передается русский текст на сервер. Используется метод get.
Печатаю принтом это поле - получаю "Перл" вместо "Перл". Стоит "Русский apache". Кодировка страницы charset=windows-1251 На сервере такой код:
читал вот такое * Если ASCII код символа больше 32 и меньше 128, то он будет выдан без изменения. * если символ - пробел, то он заменится на "+" (плюсик, без кавычек) все остальное преобразуется в вид %xx, где xx -- шестнадцатеричный код символа. Если вам повезло и у вас "Русский apache", то он преобразует его в нормальную кодировку. http://www.linux.org.ru/books/perl-faq/ru-perl-faq-4.html Но процентиков у меня не выводит. Значит apache его преобразовал. Почему текст битый? Если напишу: print("Перл"); напечатает "Перл" Это сообщение отредактировал(а) GShadrin - 23.8.2009, 18:22 |
|||
|
||||
GoodBoy |
|
|||
![]() Главный джедай ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 3886 Регистрация: 8.1.2003 Где: КМВ Репутация: 4 Всего: 83 |
Это - Юникод... Копай в эту сторону... Данные со страницы у тебя приходят не в той кодировке... |
|||
|
||||
sir_nuf_nuf |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 920 Регистрация: 6.1.2008 Репутация: 2 Всего: 31 |
Неплохо.. это в школе джедаев кракозябры читать учат ? Добавлено через 5 минут и 16 секунд Хм.. по делу: 1) попробовать не print на страницу делать, а print STDERR - что выведет в лог сервера ? 2) попробовать перед выводом данных на страницу конвертировать их из utf-8 в windows-1251. Похоже, что "русский" апач - конвертит автоматически в utf8 входные данные. |
|||
|
||||
GShadrin |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 101 Регистрация: 20.7.2009 Где: Екатеринбург Репутация: нет Всего: нет |
попробывал В лог записалось в кодировке utf-8, хотя кодировка страницы windows-1251 Почему так происходит? Браузер передает в формате utf-8, хотя кодировка windows-1251 или "русский" апач разбирает в utf-8? Буду пробывать переконвертировать. Спасибо за помощь. Это сообщение отредактировал(а) GShadrin - 26.8.2009, 11:55 |
|||
|
||||
GShadrin |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 101 Регистрация: 20.7.2009 Где: Екатеринбург Репутация: нет Всего: нет |
перекодировал из utf-8 в windows-1251 все работает
Это сообщение отредактировал(а) GShadrin - 26.8.2009, 12:13 |
|||
|
||||
sir_nuf_nuf |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 920 Регистрация: 6.1.2008 Репутация: 2 Всего: 31 |
||||
|
||||
aksined |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 58 Регистрация: 26.12.2005 Репутация: нет Всего: 1 |
не нужно пользоваться снифеером
русский апач сам ничего не конвертирует.
Вы же сами видите, что в лог записались данные в utf-8. Если Вы не приложите усилий по конвертированию их в нужную кодировку, апач этого сам делать не будет. Какие данные вы будете отдавать скриптом, такие они и уйдут к клиенту. Кодировка страницы - это то, как будет браузер на стороне клиента интерпретировать данные. Предлагаю эксперимент. Уберите конвретирование, а на стороне клиента руками поменяйте кодировку на utf-8 |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Perl: CGI программирование" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Perl: разработка для Web | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |