私はperlモジュールsapnwrfcを使用してSAPに接続し、レポートを取得しています。このモジュールはutf8を使用し、データが返されたときにはデータの一部にutf8文字の破損のパターンがあります。これは、SAPレポートの行の長さが4096を超え、現在の考えでは、perlの読み取りバッファがutf8文字を分割して破損していると考えられます。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のよりも2以上です。
\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の問題かバッファリングの問題かどうかは分かりません。なぜこれがこれを行うのか、そしてそれを修正する方法を知っていますか?
どのバージョンのPerlですか? –
それはperlです5.12.2 –
おっと!これは現在の状況に近いものです... Perl 5.6.1や5.8.2など、UTF8のサポートがよく知られているような古風なことがよくあります。 –