簡體   English   中英

PERL中未知的UTF-8字符

[英]Unknown UTF-8 character in PERL

我想從Perl中的文本文件讀取字符串

我以前閱讀的方法是:

my $indPara = "C:\\Users\\Admin001\\Desktop\\paraText.txt";
open(INDPARA, $indPara) || die "Indesign paraText not found on location!";
my $indesignPara = <INDPARA>;
close INDPARA;

閱讀文字時,我在文字&#65279收到一個未知的Unicode字符( &#65279&#xFEFF ),

從下面的鏈接下載我以前閱讀過的文本文件

https://mega.co.nz/#!r1pAyAhA!VSnL2tbPWoTtThcCRoiogSxK4ok_0YvZSczs054w0uU

我正在使用Komodo IDE 8.5和Perl 5.16.3

請給一些想法克服這個

提前致謝

重要的

您所擁有的是BOM 它告訴您所擁有的不是UTF-8文件,而是UTF-16(BE)文件)。

BOM不是文件中數據的一部分,因此您可以放心地跳過它並繼續讀取超出其范圍的數據。 但是,不應將從文件中讀取的數據視為UTF-8,而應將其視為UTF-16(BE)並適當地對其進行解碼

如果您擁有整個字符串( $indesignPara ),請執行以下操作:

$s = decode("UTF-16LE", $s, Encode::FB_QUIET);

但我不確定<INDPARA>有效。 您可以嘗試將"<:encoding(UTF-16LE)"作為要打開的第一個附加參數。 然后去除第一個寬字符,即BOM U + FFFE。

謝謝如此多的人為您提供了幫助和想法,我找到了一種方法來解決此問題,即:找到並替換此s/\\x{feff}//g; 而且有效!

暫無
暫無

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

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