2

我正在为德语使用 perl 标记器。标记器适用于某些文件,但现在我面临以下错误:

perl tokenizer.perl -l de < ~/Desktop/me.txt > ~/Desktop/me.txt.tok 
Tokenizer v3
Language: de
utf8 "\xFF" does not map to Unicode at tokenizer.perl line 44, <STDIN> line 1.
Malformed UTF-8 character (byte 0xff) in pattern match (m//) at tokenizer.perl line 45, <STDIN> line 1.
Malformed UTF-8 character (byte 0xff) in pattern match (m//) at tokenizer.perl line 45, <STDIN> line 1.
Malformed UTF-8 character (fatal) at tokenizer.perl line 64, <STDIN> line 1.

有什么想法吗?

提前致谢。

否定。

4

1 回答 1

2

错误消息具有误导性,但预期的信息是正确且有用的:在数据中遇到字节 FF(十六进制),但它不能出现在 UTF-8 数据中。因此,“utf8 "\xFF"” 本身就是无稽之谈,但将其读作“遇到的字节 FF 作为据称是 UTF-8 编码的数据”。同样,将“格式错误的 UTF-8 字符(字节 0xff)”读作“在声称的 UTF8 数据中遇到的无效数据(字节 FF)”。

要找出为什么您的数据包含字节 FF,您需要揭示更多信息。我的猜测是它实际上是 UTF-16 编码中字节顺序标记的一部分,但这只是一个猜测。

于 2013-05-29T20:12:57.420 回答