|
Помогите с кодировкой модуля Perl HTTP
|
|||
---|---|---|---|
#18+
Есть такой код: Код: php 1. 2. 3. 4. 5. 6.
Если в $params я передаю кириллицу (в utf8), то получаю ошибку "HTTP::Message content must be bytes". Пробовал подобрать кодировку в content_type, также пробовал предварительно делать encode* переменной $params, никак не могу получить читаемый результат. При этом такое работает правильно (при запуске в юникодной консоли): Код: plaintext
... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2017, 18:43 |
|
Помогите с кодировкой модуля Perl HTTP
|
|||
---|---|---|---|
#18+
uue/base64 encode строку перед тем как пихнуть ее в параметры. Ну а там где обрабатываешь будешь соответтсвенно декодировать. HTTP в заголвках очень плохо относится к non-printable ASCII characters. Бывают сервера и клиенты которые могут это обойти, но это чрезвычайно редко и вообще ненадежно. Проще всего, если всегда следовать правилу: в заголовке HTTP запроса и ответа не использовать символов вне ASCII 32 - 126. То есть от пробела, до тильды в самой примитивной ASCII таблице. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.05.2017, 19:43 |
|
Помогите с кодировкой модуля Perl HTTP
|
|||
---|---|---|---|
#18+
Да, спасибо, я кодировками я уже разобрался. Но я работаю с конкретным сервером (Flussonic), который юникод понимает, поэтому сделал так: Код: php 1. 2.
С этим сервером все работает, и проще делать отладку при необходимости. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.05.2017, 10:12 |
|
|
start [/forum/topic.php?fid=23&fpage=33&tid=1460652]: |
0ms |
get settings: |
8ms |
get forum list: |
11ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
79ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
42ms |
get tp. blocked users: |
1ms |
others: | 13ms |
total: | 175ms |
0 / 0 |