簡體   English   中英

Perl中正則表達式中格式錯誤的UTF-8字符錯誤

[英]Malformed UTF-8 character error in regular expression in Perl

將一些標量數據放入XML :: Simple或Data :: Dumper時,出現“格式錯誤的UTF-8字符”錯誤。 在發生錯誤的行上有正則表達式。

Malformed UTF-8 character (fatal) at /usr/share/perl5/XML/Simple.pm line 1690.
Malformed UTF-8 character (fatal) at /usr/lib/perl/5.10/Data/Dumper.pm line 682.

目前,我無法用一小段代碼重現該錯誤。

XML::Simple 2.18
Data::Dumper 2.124
perl v5.10.1

之所以出現此問題,是因為在應用程序代碼的某個深處,是帶有標量的Encode::_utf8_on ,這不是正確的UTF-8字符串。

您可以嘗試通過Encoding :: FixLatin傳遞數據。 如果您遇到的“二進制”字節實際上是Latin-1字符,則它們將被轉換為有效的UTF8。 如果它們確實是隨機二進制字節,則至少應將它們轉換為隨機(但有效)的UTF8字符:-)

核心編碼模塊提供了處理格式錯誤數據的功能 不過,我自己從未使用過它們。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM