在文件中搜索非unicode字符

在文件中搜索非unicode字符,unicode,character-encoding,Unicode,Character Encoding,我有一个文本块(从db中提取),我想查找非unicode字符,因为在代码的某些部分(python 3.6),当我将值转换为str时,我得到以下ValueError:字符U+FFFFFF C2不在[U+0000;U+10ffff] 因此,如果我能找到非unicode字符,我可以决定如何处理它们。我绝对不想用别的东西来代替它们 我找到了如何在带有grep--color='auto'-p-n'[^\x00-\x7F]'文件\u name.txt的文件中查找非ascii字符,但我不确定这是否也给了我非u

我有一个文本块(从db中提取),我想查找非unicode字符,因为在代码的某些部分(
python 3.6
),当我将值转换为
str
时,我得到以下
ValueError:字符U+FFFFFF C2不在[U+0000;U+10ffff]

因此,如果我能找到非unicode字符,我可以决定如何处理它们。我绝对不想用别的东西来代替它们

我找到了如何在带有
grep--color='auto'-p-n'[^\x00-\x7F]'文件\u name.txt
的文件中查找非ascii字符,但我不确定这是否也给了我非unicode字符

#包含UTF-8编码的U+FFFFFF C2
›十六进制代码文件
0000 61 62 63 fe 83高炉82 78 79 7a abc。。xyz
›perl-MEncode-lne'
#用空字符串替换垃圾邮件
my$line=解码“UTF-8”,$\uU8,sub{”“};
打印编码为“UTF-8”,美元行;
“<1个代码文件
abcxyz
# contains U+ffffffc2 encoded in UTF-8
› hex nonunicodefile
0000  61 62 63 fe 83 bf bf bf  bf 82 78 79 7a           abc..... ..xyz

› perl -MEncode -lne'
    # replace junk with empty string
    my $line = decode "UTF-8", $_, sub { "" };
    print encode "UTF-8", $line;
' < nonunicodefile
abcxyz