我正在为德语使用perl tokenizer。令牌器适用于某些文件,但现在我遇到以下错误:
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.
有什么想法吗?
提前致谢。
负片
答案 0 :(得分:1)
错误消息具有误导性,但预期信息正确且有用:数据中遇到字节FF(十六进制),但它不能出现在UTF-8数据中。所以“utf8”\ xFF“”是无意义的,但是把它读作“遇到声称为UTF-8编码的数据的字节FF”。同样,将“格式错误的UTF-8字符(字节0xff)”读作“在声称的UTF8数据中遇到无效数据(字节FF)”。
要找出数据包含字节FF的原因,您需要了解更多信息。我的猜测是它实际上是UTF-16编码中字节顺序标记的一部分,但这只是猜测。