| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Perl: разработка для Web > русский текст |
| Автор: noder 26.8.2004, 09:07 |
| Есть такой скрипт: #!/usr/local/bin/perl read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'}); @pairs = split(/&/, $buffer); foreach $pair (@pairs) { ($name, $value) = split(/=/, $pair); $value =~ tr/+/ /; $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; $value =~ s/<!--(.|\n)*-->//g; $input{$name} = $value; } Так вот если ему подать русский текст из веб формы, то он записывает в файл (а обработонное мне нужно записывать в файл) одни знаки вопросы, помогите разобраться, что для этого нужно. |
| Автор: chaos 27.8.2004, 07:56 |
| Конвертировать тебе симовлы нужно!!! |
| Автор: noder 27.8.2004, 12:13 | ||
Э-эм рискну спросить...как? потому как я еще не совсем понимаю какую роль играют следующие строки в моем скрипте: $value =~ tr/+/ /; $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; $value =~ s/<!--(.|\n)*-->//g; на сколько я понимаю, в этих строках идет замена всяких символов? |
| Автор: dimes 27.8.2004, 13:30 |
| -каким браузером ты постиш данные? -есть ли чтонибуть на странице что явно указывает кодировку? например <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1"> -как убедился что это не твой редактор превращает символы в "?" при просмотре полученных файлов? |
| Автор: noder 27.8.2004, 16:35 | ||
данные постились из IE, на странице с формой META тега нет. Просматривал содержимое файла консольным редактором Vi (проблемы с локалью исключены), потом просматривал в Виндах, те же знаки вопроса |
| Автор: GoodBoy 27.8.2004, 17:42 | ||
| noder Честно говоря у меня подозрения именно на локаль... Попробуй в скрипте прописать это:
А на странице - <meta http-equiv="Content-Type" content="text/html; charset=windows-1251"> И все кодировку страницы сделать в 1251. |