Я использую модуль 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 или проблема буферизации. Кто-нибудь знает, почему это будет делать это и как это исправить?