![]() |
|
Модераторы: korob2001, ginnie |
![]()
|
|
| deymos34 |
|
|||
|
Unregistered |
Здравствуйте!
Есть англоязычный скрипт аукциона на Перле. Перевел я его на русский, и все бы ничего, но возникли проблемы с кодировкой - как в русских описаниях лотов, так и в рассылаемых им письмах. Пришлось совершенствовать шапку генерируемого ХТМЛ-файла - добавить строку <meta http-equiv="Content-Type" content="text/html; charset=windows-1251">. Не помогло (проверил, строка действительно добавляется в код, все ОК)! Проверял и в Эксплорере, и в Файерфоксе (автоопределение включено). Если же насильно переключить браузер на windows-1251, все отображается корректно. Что посоветуете? ЗЫ А вот почту удалось отладить, но туда переменная charset была изначально включена, так что просто поменял в ней кодировку. ЗЗЫ Есть у меня скрипт другого аукциона, тоже на Перл, тоже самолично руссифицированный - так там проблем никаких нет, русский текст отображается корректно. При том, что в генерируемом им ХТМЛ-файле charset как не было, так и нет... Заранее спасибо! |
|||
|
||||
| korob2001 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2871 Регистрация: 29.12.2002 Репутация: 13 Всего: 61 |
Кодировку меняй в заголовках, а не на прямую вставляя тег <META>. Скорее всего они выводятся с помощью модуля CGI, т.е. ищи в скриптах заголовки header() и укажи нужную тебе кодировку header( -charset => "Windows-1251" ).
Если не поможет, тогда выкладывай код. -------------------- "Время проходит", - привыкли говорить вы по неверному пониманию. "Время стоит - проходите вы". |
|||
|
||||
| deymos34 |
|
|||
|
Unregistered |
К сожалению, не помогло.
заголовки header импортируются из header.txt вставил в него соответствующий код - он появился в генерируемых HTML-страницах (правда, вне тега <HEAD>), но это не помогло. Сам ПЕРЛ-код можно увидеть здесь: http://reninfa.ru/auct.pl Рабочий скрипт находится здесь: http://reninfa.ru/cgi-bin/auct.pl (соответственно можно увидеть генерируемый ПЕРЛ-скриптом ХТМЛ-код). |
|||
|
||||
| Usya |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 154 Регистрация: 7.6.2005 Репутация: нет Всего: нет |
Я с этим не сталкивался, но в качестве пищи для размышления... Может прокатит
--------------------
Я не волшебник, я только учусь... |
|||
|
||||
| deymos34 |
|
|||
|
Unregistered |
К сожалению, и это не помогло...
Более того, я даже в httpd.conf добавил строку AddDefaultCharset WINDOWS-1251 Эффект нулевой... |
|||
|
||||
| sharq |
|
|||
![]() Perl Liker ![]() ![]() Профиль Группа: Участник Сообщений: 841 Регистрация: 13.12.2004 Где: Ростов-на-Дону Репутация: 2 Всего: 28 |
deymos34
Просто замени все строки Content-type: text/html на Content-Type: text/html; charset=windows-1251. И все! -------------------- [color=gray]There's More Than One Way To Do It[/color] |
|||
|
||||
| deymos34 |
|
|||
|
Unregistered |
Увы, и это не помогло...
|
|||
|
||||
| Usya |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 154 Регистрация: 7.6.2005 Репутация: нет Всего: нет |
1) А ты не пробовал спрашивать у админа?
2) Есть одно предложение - не фонтан, но если других советов не будет, то может подойти на первое время. Посмотри в html-коде, как у тебя записаны слова Авто, Бизнес и Видео, аудио. Сделай также, через хэш - автоматом перекодируй все буквы русского языка Правда это немного через задницу --------------------
Я не волшебник, я только учусь... |
|||
|
||||
| sharq |
|
|||
![]() Perl Liker ![]() ![]() Профиль Группа: Участник Сообщений: 841 Регистрация: 13.12.2004 Где: Ростов-на-Дону Репутация: 2 Всего: 28 |
Все просто: найди функцию print_header
Замени header на header(-charset => 'windows-1251') -------------------- [color=gray]There's More Than One Way To Do It[/color] |
|||
|
||||
| deymos34 |
|
|||
|
Unregistered |
Урааа!!!
Запахало - с помощью последнего совета. Всем спасибо. А я, конечно, дурак - это еще в первом совете предлагалось, но реализовал я тогда криво |
|||
|
||||
| deymos34 |
|
|||
|
Unregistered |
Рано радовался...
Возникла еще одна проблема - скрипт не переваривает в вводимых пользователем данных кавычки (срезает всю инфу после них). Дописал скрипт, чтобы он не принимал данные (выводя соответствующее сообщение), пока юзер не удалит все кавычки. А как сделать так, чтобы скрипт сам удалял кавычки? |
|||
|
||||
| Usya |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 154 Регистрация: 7.6.2005 Репутация: нет Всего: нет |
Один из вариантов - через JavaScript, если с этим более менее знаком. При этом можно контролировать введенную инфу как при потере фокуса в нужном поле, так и при нажатии Submit.
--------------------
Я не волшебник, я только учусь... |
|||
|
||||
| sharq |
|
|||
![]() Perl Liker ![]() ![]() Профиль Группа: Участник Сообщений: 841 Регистрация: 13.12.2004 Где: Ростов-на-Дону Репутация: 2 Всего: 28 |
deymos34 используя регулярные выражения:
Usya это не надежно. -------------------- [color=gray]There's More Than One Way To Do It[/color] |
|||
|
||||
| Usya |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 154 Регистрация: 7.6.2005 Репутация: нет Всего: нет |
sharq, когда это не срабатывает? Кроме того, в любом случае от того что по мере заполнения формы (либо при отправке) юзеру будут выводиться сообщения о том, что в таких-то полях инфа будет немного модифицирована (либо некорректно введена) - не помешает. --------------------
Я не волшебник, я только учусь... |
|||
|
||||
| sharq |
|
|||
![]() Perl Liker ![]() ![]() Профиль Группа: Участник Сообщений: 841 Регистрация: 13.12.2004 Где: Ростов-на-Дону Репутация: 2 Всего: 28 |
Usya все очень просто: клиент отключает javascript или меняет его и данные в "кривом" виде отправляются на сервер, поэтому чтобу не произошло казусов при записи данных, лучше их проверять на сервере и записовать исправленными или отсылать ответ об ошибке.
-------------------- [color=gray]There's More Than One Way To Do It[/color] |
|||
|
||||
![]()
|
| Правила форума "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. |