utf8“\ xFF”未在tokenizer.perl第44行,<stdin>第1行映射到Unicode。</stdin>

时间:2013-05-29 19:46:40

标签: perl unicode utf-8 tokenize

我正在为德语使用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.

有什么想法吗?

提前致谢。

负片

1 个答案:

答案 0 :(得分:1)

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

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