на главнуюВсе эхи RU.PERL
войти ?

Re: Странное чтение из STDIN

От Eugene Grosbein (2:5006/1) к Gennadij Pastuhov

В ответ на Заголовок предыдущего сообщения в треде (Имя Автора)


08 июня 2022, среда, в 16:00 NOVT, Gennadij Pastuhov написал(а):

GP> $ curl '172.25.0.5:8080/preset-add' -H 'Content-Type: application/json' --data
GP> '{"name":"пресет4","name_en":"preset4"}'
GP> FM::Common::WebIn155 form_data $VAR1 =
GP> "{\"name\":\"\x{43f}\x{440}\x{435}\x{441}\x{435}\x{442}4\",\"name_en\":\"preset4\"}";
GP> А потом вдруг всё ломается и переходит на чтение побайтово:
GP> $ curl '172.25.0.5:8080/preset-add' -H 'Content-Type: application/json' --data
GP> '{"name":"пресет5","name_en":"preset5"}'
GP> FM::Common::WebIn155 form_data $VAR1 =
GP> '{"name":"??N?чN?чN5","name_en":"preset5"}';
GP> И последующие запросы идут только в таком формате. Что это может быть?

Воообще говоря, так делать не положено - задавать
Content-Type с данными не в ASCII без указания кодировки.

Hа стороне сервера при этом возможны разнообразные глюки и формально,
сервер имеет на это право. Может пытаться или не пытаться продетектить
Byte Order Mark (BOM: 0xEF, 0xBB,0xBF), может полагаться на дефолты и т.д.

По нормальному положено указывать кодировку:

... -H 'Content-Type: application/json; charset=utf-8' --data-urlencode ...


Потому что --data предназначено для передачи параметров в CGI
и использует application/x-www-form-urlencoded,
а тебе надо --data-urlencode.

Eugene
--- slrn/1.0.3 (FreeBSD)
* Origin: RDTC JSC (2:5006/1@fidonet)

Ответы на это письмо:

From: Username
Заголовок следующего сообщения в треде может быть длинным и его придется перенести на новую строку

From: Username
Или коротким

FGHI-url этого письма: area://RU.PERL?msgid=grosbein.net+b5405717