Проблема возникает при загрузке файла на сервер, при использовании директивы use encoding 'utf8\′;
Ошибка: utf8 «\\x8C» does not map to Unicode at ……..
Лог:
[Mon Mar 15 13:04:11 2010] [error] [client 127.0.0.1] utf8 «\\xDA» does not map to Unicode at (eval 10) line 5., referer: localhost:8002/form.html
[Mon Mar 15 13:04:11 2010] [error] [client 127.0.0.1] utf8 «\\xFF» does not map to Unicode at (eval 10) line 5., referer: localhost:8002/form.html
[Mon Mar 15 13:04:11 2010] [error] [client 127.0.0.1] utf8 «\\xE1» does not map to Unicode at (eval 10) line 5., referer: localhost:8002/form.html
…………………
[Mon Mar 15 13:04:11 2010] [error] [client 127.0.0.1] Malformed multipart POST, referer: localhost:8002/form.html
[Mon Mar 15 13:04:11 2010] [error] [client 127.0.0.1] Premature end of script headers: test.pl, referer: localhost:8002/form.html
Код.
form.html(Форма)
<form enctype="multipart/form-data" method="post" action="test.pl"> <input type="file" name="icon" /> <input type="submit" name="buttom" value="OK" /> </form>
test.pl (скрипт загружает файл)
#!/usr/bin/perl use CGI; use encoding 'utf8'; my $cgi = CGI->new; # Загрузка файла от пользователя my $file_name = $cgi->param('icon');
open(OUT,">/some_path/$file_name"); # читаем входной поток и пишем в файл binmode(OUT, ':bytes'); while (<$file_name>) { print OUT $_; } close(OUT);
Насколько я понял ошибка кроется в модуле CGI.pm. Кто-нибудь сталкивался с такой проблемой?
Последние комментарии
- OlegL, 17 декабря в 15:00 → Перекличка 21
- REDkiy, 8 июня 2023 года в 9:09 → Как «замокать» файл для юниттеста в Python? 2
- fhunter, 29 ноября 2022 года в 2:09 → Проблема с NO_PUBKEY: как получить GPG-ключ и добавить его в базу apt? 6
- Иванн, 9 апреля 2022 года в 8:31 → Ассоциация РАСПО провела первое учредительное собрание 1
- Kiri11.ADV1, 7 марта 2021 года в 12:01 → Логи catalina.out в TomCat 9 в формате JSON 1
Почему бы не «use utf8;» вместо use encoding… ?
use utf8 — не влияет на интерпретацию строк со сброшенным флагом UTF-8. Прагма use encoding более функциональна.
НО… Скрипт при использовании прагмы use utf8, работает и мне этот вариант подходит.
Спасибо, Дмитрий.