коррупция в perl utf8 - PullRequest
       2

коррупция в perl utf8

0 голосов
/ 24 ноября 2010

Я использую модуль perl sapnwrfc для подключения к SAP и получения отчетов. Этот модуль использует utf8, и когда данные возвращаются, некоторые данные имеют тип повреждения символов utf8. Похоже, это происходит, когда длина строки в отчете SAP превышает 4096, и в настоящее время я думаю, что буфер чтения perl разбивает символы utf8 и вызывает повреждение.

$abap_lookup = $sap_rfc->function_lookup("REPORT");
$abap_program = $abap_lookup->create_function_call;

# set abap program input variables
$abap_program->REPORT($abap_program_name);
$abap_program->VARIANT($abap_variant_name);

# call the abap program
$abap_program->invoke;

$ abap_program-> DATA содержит повреждение в одном месте в каждой строке, которое превышает 4Kb

Это фрагмент с повреждением, фактическая строка - байт или два больше, чем 4Kb.

\x{f8fc}\x{2500}     \x{500}/\x{f8fc}\x{2500}

Это то, что ожидается, поэтому я предполагаю, что что-то разбивает линию и вызывает проблему.

\x{f8fc}\x{2500}\x{f8fc}\x{2500}\x{f8fc}\x{2500}

Я испробовал все способы открытия прагмы ': utf8' и других настроек (используйте utf8, binmode (STDIN, ": utf8"), binmode (STDOUT, ": utf8");). Также попытались отключить буферизацию ($ | = 1;). Я не могу сказать, если это проблема utf8 или проблема буферизации. Кто-нибудь знает, почему это будет делать это и как это исправить?

1 Ответ

0 голосов
/ 07 декабря 2010

не удалось выяснить, где происходит повреждение, но это повторяется, поэтому я построил фильтр.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...